@pstdio/ui 0.36.1 → 0.38.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 (29) hide show
  1. package/dist/{MermaidComponent-Cxg7NtjX.js → MermaidComponent-BLMDb5XE.js} +2 -2
  2. package/dist/{MermaidComponent-Cxg7NtjX.js.map → MermaidComponent-BLMDb5XE.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +11 -0
  4. package/dist/chat-ui.js +702 -698
  5. package/dist/chat-ui.js.map +1 -1
  6. package/dist/{data-table-stats-row-UuTinYfL.js → data-table-stats-row-BrpOFzgn.js} +2 -2
  7. package/dist/{data-table-stats-row-UuTinYfL.js.map → data-table-stats-row-BrpOFzgn.js.map} +1 -1
  8. package/dist/data-table.js +4 -4
  9. package/dist/index.d.ts +12 -1
  10. package/dist/index.js +375 -348
  11. package/dist/index.js.map +1 -1
  12. package/dist/kanban-renderer.js +2 -2
  13. package/dist/{param-editor-I0dKQeeZ.js → param-editor-BsyIOdrP.js} +2 -2
  14. package/dist/{param-editor-I0dKQeeZ.js.map → param-editor-BsyIOdrP.js.map} +1 -1
  15. package/dist/{param-editor-field-CBguLs_b.js → param-editor-field-qEWoluWT.js} +39 -28
  16. package/dist/param-editor-field-qEWoluWT.js.map +1 -0
  17. package/dist/param-editor.js +2 -2
  18. package/dist/{prism-pSHJejZx.js → prism-BStPsJSB.js} +28 -16
  19. package/dist/prism-BStPsJSB.js.map +1 -0
  20. package/dist/{rich-text-BgDvOEGH.js → rich-text-CQAntEuA.js} +3 -3
  21. package/dist/{rich-text-BgDvOEGH.js.map → rich-text-CQAntEuA.js.map} +1 -1
  22. package/dist/rich-text.js +1 -1
  23. package/dist/{theme-0cbWICbg.js → theme-BH-rGipZ.js} +16 -1
  24. package/dist/theme-BH-rGipZ.js.map +1 -0
  25. package/dist/theme.js +1 -1
  26. package/package.json +2 -2
  27. package/dist/param-editor-field-CBguLs_b.js.map +0 -1
  28. package/dist/prism-pSHJejZx.js.map +0 -1
  29. package/dist/theme-0cbWICbg.js.map +0 -1
package/dist/chat-ui.js CHANGED
@@ -1,14 +1,14 @@
1
- import { a as e, o as t, r as n } from "./prism-pSHJejZx.js";
1
+ import { a as e, o as t, r as n } from "./prism-BStPsJSB.js";
2
2
  import { n as r, t as i } from "./scroll-area-Cr1lNXAr.js";
3
3
  import { t as a } from "./empty-state-3mVV_pV-.js";
4
4
  import { n as o, t as s } from "./radio-CiFrDN6O.js";
5
- import { c, l, o as u, s as d } from "./rich-text-BgDvOEGH.js";
5
+ import { c, l, o as u, s as d } from "./rich-text-CQAntEuA.js";
6
6
  import { t as f } from "./diff-bubble-DZsarmSG.js";
7
7
  import { AbsoluteCenter as p, Avatar as m, Badge as h, Box as g, Button as _, Card as v, Code as y, Flex as b, HStack as x, Icon as S, IconButton as C, Image as w, Kbd as T, Link as E, Portal as D, Skeleton as O, Spacer as k, Span as A, Spinner as j, Stack as M, Text as N, Textarea as P, Timeline as F, Tooltip as I, chakra as L, createSlotRecipeContext as R, defineSlotRecipe as z } from "@chakra-ui/react";
8
8
  import { c as B } from "react/compiler-runtime";
9
9
  import { Fragment as V, jsx as H, jsxs as U } from "react/jsx-runtime";
10
- import { Fragment as W, Suspense as G, lazy as ee, useEffect as K, useRef as q, useState as J } from "react";
11
- import { AlertTriangle as te, ArrowDownIcon as Y, ArrowUp as X, Check as ne, ChevronUpIcon as re, CircleQuestionMark as ie, Copy as ae, DotIcon as oe, File as se, FileDiff as ce, FileDown as le, FilePen as ue, FileText as de, FileUp as fe, Globe as pe, GripVertical as me, ListTodo as he, ListTree as ge, MessageCircleIcon as _e, Move as ve, Pause as ye, Pencil as be, Search as xe, ShieldCheck as Se, ShieldX as Ce, Terminal as we, Trash2 as Te } from "lucide-react";
10
+ import { Fragment as ee, Suspense as W, lazy as G, useEffect as K, useLayoutEffect as te, useRef as q, useState as J } from "react";
11
+ import { AlertTriangle as ne, ArrowDownIcon as re, ArrowUp as Y, Check as X, ChevronUpIcon as ie, CircleQuestionMark as Z, Copy as ae, DotIcon as oe, File as se, FileDiff as ce, FileDown as le, FilePen as ue, FileText as de, FileUp as fe, Globe as pe, GripVertical as me, ListTodo as he, ListTree as ge, MessageCircleIcon as _e, Move as ve, Pause as ye, Pencil as be, Search as xe, ShieldCheck as Se, ShieldX as Ce, Terminal as we, Trash2 as Te } from "lucide-react";
12
12
  import { useVirtualizer as Ee } from "@tanstack/react-virtual";
13
13
  import { StickToBottom as De, useStickToBottomContext as Oe } from "use-stick-to-bottom";
14
14
  var ke = L(De, { base: {
@@ -62,7 +62,7 @@ var ke = L(De, { base: {
62
62
  variant: "outline",
63
63
  size: "xs",
64
64
  ...e,
65
- children: /* @__PURE__ */ H(Y, { size: 16 })
65
+ children: /* @__PURE__ */ H(re, { size: 16 })
66
66
  })
67
67
  }), t[0] = n, t[1] = e, t[2] = r, t[3] = i) : i = t[3], i;
68
68
  }
@@ -137,6 +137,10 @@ var ke = L(De, { base: {
137
137
  content: { textStyle: "md" }
138
138
  }
139
139
  },
140
+ delivery: {
141
+ sent: {},
142
+ unsent: { content: { opacity: .6 } }
143
+ },
140
144
  shape: {
141
145
  rounded: { content: { rounded: "0" } },
142
146
  pill: { content: { rounded: "0" } },
@@ -146,18 +150,19 @@ var ke = L(De, { base: {
146
150
  defaultVariants: {
147
151
  from: "user",
148
152
  size: "md",
149
- shape: "rounded"
153
+ shape: "rounded",
154
+ delivery: "sent"
150
155
  }
151
- }), { withProvider: Pe, withContext: Fe } = R({ recipe: Ne }), Z = {
156
+ }), { withProvider: Pe, withContext: Fe } = R({ recipe: Ne }), Ie = {
152
157
  Root: Pe("div", "root"),
153
158
  Content: Fe("div", "content")
154
- }, Ie = (e) => {
159
+ }, Le = (e) => {
155
160
  if (e == null) return null;
156
161
  let t = typeof e == "string" ? e : JSON.stringify(e, null, 2);
157
162
  return t.length === 0 ? null : t.length > 200 ? `${t.slice(0, 200)}...` : t;
158
- }, Le = (e) => {
163
+ }, Re = (e) => {
159
164
  let t = B(19), { toolName: n, toolInput: r, onApprove: a, onDeny: o } = e, s;
160
- t[0] === r ? s = t[1] : (s = Ie(r), t[0] = r, t[1] = s);
165
+ t[0] === r ? s = t[1] : (s = Le(r), t[0] = r, t[1] = s);
161
166
  let c = s, l;
162
167
  t[2] === n ? l = t[3] : (l = /* @__PURE__ */ U(N, {
163
168
  textStyle: "label/S/medium",
@@ -225,10 +230,10 @@ var ke = L(De, { base: {
225
230
  ]
226
231
  })
227
232
  }), t[15] = l, t[16] = u, t[17] = h, t[18] = v) : v = t[18], v;
228
- }, Re = "md", ze = "neutral", Be = (e) => {
233
+ }, ze = "md", Be = "neutral", Ve = (e) => {
229
234
  let t = B(17), { attachments: r, onSelect: i, onRemove: a, renderBadge: o, size: s, tone: c } = e, l;
230
235
  t[0] === r ? l = t[1] : (l = r === void 0 ? [] : r, t[0] = r, t[1] = l);
231
- let u = l, d = s === void 0 ? Re : s, f = c === void 0 ? ze : c;
236
+ let u = l, d = s === void 0 ? ze : s, f = c === void 0 ? Be : c;
232
237
  if (u.length === 0) return null;
233
238
  let p;
234
239
  if (t[2] !== u || t[3] !== a || t[4] !== i || t[5] !== o || t[6] !== d || t[7] !== f) {
@@ -243,7 +248,7 @@ var ke = L(De, { base: {
243
248
  size: d,
244
249
  tone: f
245
250
  });
246
- return /* @__PURE__ */ H(W, { children: n }, e);
251
+ return /* @__PURE__ */ H(ee, { children: n }, e);
247
252
  }
248
253
  return /* @__PURE__ */ H(n, {
249
254
  fileName: e,
@@ -262,13 +267,13 @@ var ke = L(De, { base: {
262
267
  flexWrap: "wrap",
263
268
  children: p
264
269
  }), t[15] = p, t[16] = m), m;
265
- }, Ve = (e) => {
270
+ }, He = (e) => {
266
271
  let { previousUserMessageCount: t, userMessageCount: n } = e;
267
272
  return t !== 0 && n > t;
268
- }, He = (e) => {
273
+ }, Ue = (e) => {
269
274
  let t = e.conversationKey ?? null;
270
275
  return e.state.conversationKey === t ? {
271
- shouldScroll: Ve({
276
+ shouldScroll: He({
272
277
  previousUserMessageCount: e.state.userMessageCount,
273
278
  userMessageCount: e.userMessageCount
274
279
  }),
@@ -283,11 +288,11 @@ var ke = L(De, { base: {
283
288
  userMessageCount: e.userMessageCount
284
289
  }
285
290
  };
286
- }, Ue = (e) => {
287
- let t = He(e);
291
+ }, We = (e) => {
292
+ let t = Ue(e);
288
293
  return t.shouldScroll && e.scrollToBottom("instant"), t;
289
294
  };
290
- function We(e) {
295
+ function Ge(e) {
291
296
  let t = B(8), { conversationKey: n, userMessageCount: r } = e, { scrollToBottom: i } = Oe(), a = n ?? null, o;
292
297
  t[0] !== a || t[1] !== r ? (o = {
293
298
  conversationKey: a,
@@ -295,7 +300,7 @@ function We(e) {
295
300
  }, t[0] = a, t[1] = r, t[2] = o) : o = t[2];
296
301
  let s = q(o), c, l;
297
302
  return t[3] !== n || t[4] !== i || t[5] !== r ? (c = () => {
298
- let e = Ue({
303
+ let e = We({
299
304
  state: s.current,
300
305
  conversationKey: n,
301
306
  userMessageCount: r,
@@ -310,13 +315,13 @@ function We(e) {
310
315
  }
311
316
  //#endregion
312
317
  //#region src/components/chat-ui/components/chat-input-actions.ts
313
- var Ge = (e) => e.trim().length > 0, Ke = (e) => {
318
+ var Ke = (e) => e.trim().length > 0, qe = (e) => {
314
319
  let { canSubmit: t, isDisabled: n, text: r } = e;
315
- return n || !t || !Ge(r) ? "none" : "submit";
316
- }, qe = (e) => {
320
+ return n || !t || !Ke(r) ? "none" : "submit";
321
+ }, Je = (e) => {
317
322
  let { canInterrupt: t, canSubmit: n, hasQuestionPrompt: r, isDisabled: i, streaming: a, text: o } = e;
318
- return i ? "none" : n && Ge(o) ? "submit" : a && !r && t ? "interrupt" : "none";
319
- }, Je = (e, t = 200) => e.length > 0 && e.split(/\r\n|\r|\n/).length > t, Ye = (e) => {
323
+ return i ? "none" : n && Ke(o) ? "submit" : a && !r && t ? "interrupt" : "none";
324
+ }, Ye = (e, t = 200) => e.length > 0 && e.split(/\r\n|\r|\n/).length > t, Xe = (e) => {
320
325
  let { onAttachFiles: t, onAttachText: n, textAttachmentPasteLineThreshold: r } = e;
321
326
  return {
322
327
  onDragOver: (e) => {
@@ -333,12 +338,12 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
333
338
  return;
334
339
  }
335
340
  let a = e.clipboardData.getData("text/plain");
336
- n && Je(a, r) && (e.preventDefault(), n(a));
341
+ n && Ye(a, r) && (e.preventDefault(), n(a));
337
342
  }
338
343
  };
339
- }, Xe = (e) => {
340
- e.preventDefault();
341
344
  }, Ze = (e) => {
345
+ e.preventDefault();
346
+ }, Qe = (e) => {
342
347
  let t = B(7), { option: n } = e, r;
343
348
  t[0] === n.label ? r = t[1] : (r = /* @__PURE__ */ H(N, {
344
349
  textStyle: "label/S/regular",
@@ -357,11 +362,11 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
357
362
  minWidth: "0",
358
363
  children: [r, i]
359
364
  }), t[4] = r, t[5] = i, t[6] = a) : a = t[6], a;
360
- }, Qe = (t) => {
365
+ }, $e = (t) => {
361
366
  let n = B(12), { option: r, name: i, checked: a, editable: o, onToggle: s } = t, c = !o, l = o ? void 0 : "true", u;
362
367
  n[0] === o ? u = n[1] : (u = o ? void 0 : { tabIndex: -1 }, n[0] = o, n[1] = u);
363
368
  let d = o ? s : void 0, f;
364
- n[2] === r ? f = n[3] : (f = /* @__PURE__ */ H(Ze, { option: r }), n[2] = r, n[3] = f);
369
+ n[2] === r ? f = n[3] : (f = /* @__PURE__ */ H(Qe, { option: r }), n[2] = r, n[3] = f);
365
370
  let p;
366
371
  return n[4] !== a || n[5] !== i || n[6] !== c || n[7] !== l || n[8] !== u || n[9] !== d || n[10] !== f ? (p = /* @__PURE__ */ H(e, {
367
372
  name: i,
@@ -373,7 +378,7 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
373
378
  onCheckedChange: d,
374
379
  children: f
375
380
  }), n[4] = a, n[5] = i, n[6] = c, n[7] = l, n[8] = u, n[9] = d, n[10] = f, n[11] = p) : p = n[11], p;
376
- }, $e = (e) => {
381
+ }, et = (e) => {
377
382
  let t = B(17), { question: n, questionIndex: r, name: i, selectedOption: a, editable: c, onToggleOption: l } = e, u = a ?? null, d = !c, f = c ? void 0 : "true", p;
378
383
  t[0] !== c || t[1] !== l || t[2] !== n || t[3] !== r ? (p = c ? (e) => {
379
384
  e.value && l?.(n, r, e.value);
@@ -385,7 +390,7 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
385
390
  value: e.label,
386
391
  inputProps: c ? void 0 : { tabIndex: -1 },
387
392
  alignItems: "flex-start",
388
- children: /* @__PURE__ */ H(Ze, { option: e })
393
+ children: /* @__PURE__ */ H(Qe, { option: e })
389
394
  }, e.label), t[8] = c, t[9] = e), m = n.options.map(e), t[5] = c, t[6] = n.options, t[7] = m;
390
395
  } else m = t[7];
391
396
  let h;
@@ -400,9 +405,9 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
400
405
  onValueChange: p,
401
406
  children: m
402
407
  }), t[10] = i, t[11] = u, t[12] = d, t[13] = f, t[14] = p, t[15] = m, t[16] = h) : h = t[16], h;
403
- }, et = (e) => {
408
+ }, tt = (e) => {
404
409
  let t = B(4), { items: n } = e, r;
405
- t[0] === n ? r = t[1] : (r = n.map(nt), t[0] = n, t[1] = r);
410
+ t[0] === n ? r = t[1] : (r = n.map(rt), t[0] = n, t[1] = r);
406
411
  let i;
407
412
  return t[2] === r ? i = t[3] : (i = /* @__PURE__ */ H(M, {
408
413
  as: "ul",
@@ -412,7 +417,7 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
412
417
  padding: "0",
413
418
  children: r
414
419
  }), t[2] = r, t[3] = i), i;
415
- }, tt = (e) => {
420
+ }, nt = (e) => {
416
421
  let t = B(19), { questions: n, editable: r, selectedOptionsByQuestion: i, customAnswersByQuestion: a, onToggleOption: o, onCustomAnswerChange: s } = e, c = r !== void 0 && r, l;
417
422
  t[0] === i ? l = t[1] : (l = i === void 0 ? {} : i, t[0] = i, t[1] = l);
418
423
  let u = l, d;
@@ -438,14 +443,14 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
438
443
  paddingX: "2xs",
439
444
  children: e.question
440
445
  }),
441
- r === "radio" ? /* @__PURE__ */ H($e, {
446
+ r === "radio" ? /* @__PURE__ */ H(et, {
442
447
  question: e,
443
448
  questionIndex: t,
444
449
  name: n,
445
450
  selectedOption: i[0],
446
451
  editable: c,
447
452
  onToggleOption: o
448
- }) : e.options.map((r) => /* @__PURE__ */ H(Qe, {
453
+ }) : e.options.map((r) => /* @__PURE__ */ H($e, {
449
454
  option: r,
450
455
  name: n,
451
456
  checked: i.includes(r.label),
@@ -475,12 +480,12 @@ var Ge = (e) => e.trim().length > 0, Ke = (e) => {
475
480
  return t[17] === p ? m = t[18] : (m = /* @__PURE__ */ H(M, {
476
481
  as: "form",
477
482
  gap: "sm",
478
- onSubmit: Xe,
483
+ onSubmit: Ze,
479
484
  "aria-label": "Question form",
480
485
  children: p
481
486
  }), t[17] = p, t[18] = m), m;
482
487
  };
483
- function nt(t, n) {
488
+ function rt(t, n) {
484
489
  return /* @__PURE__ */ H(g, {
485
490
  as: "li",
486
491
  children: /* @__PURE__ */ H(e, {
@@ -499,8 +504,8 @@ function nt(t, n) {
499
504
  }
500
505
  //#endregion
501
506
  //#region src/components/chat-ui/components/chat-input-question-prompt.tsx
502
- var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
503
- let i = rt(t, n), a = e[i] ?? [], o = a.includes(r);
507
+ var it = (e, t) => e.id ?? `question-${t}`, at = (e, t, n, r) => {
508
+ let i = it(t, n), a = e[i] ?? [], o = a.includes(r);
504
509
  return t.multiple ? {
505
510
  ...e,
506
511
  [i]: o ? a.filter((e) => e !== r) : [...a, r]
@@ -508,8 +513,8 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
508
513
  ...e,
509
514
  [i]: o ? [] : [r]
510
515
  };
511
- }, at = (e) => e ? JSON.stringify(e.questions.map((e, t) => ({
512
- id: rt(e, t),
516
+ }, ot = (e) => e ? JSON.stringify(e.questions.map((e, t) => ({
517
+ id: it(e, t),
513
518
  question: e.question,
514
519
  multiple: !!e.multiple,
515
520
  required: !!e.required,
@@ -518,60 +523,60 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
518
523
  label: e.label,
519
524
  description: e.description ?? ""
520
525
  }))
521
- }))) : "", ot = (e, t, n) => {
526
+ }))) : "", st = (e, t, n) => {
522
527
  let r = [];
523
528
  for (let i = 0; i < e.questions.length; i += 1) {
524
- let a = e.questions[i], o = rt(a, i), s = t[o] ?? [], c = n[o]?.trim(), l = c ? [...s, c] : s;
529
+ let a = e.questions[i], o = it(a, i), s = t[o] ?? [], c = n[o]?.trim(), l = c ? [...s, c] : s;
525
530
  l.length !== 0 && r.push(`${a.question}: ${l.join(", ")}`);
526
531
  }
527
532
  return r;
528
- }, st = (e) => typeof e != "string", ct = (e, t) => {
529
- if (st(t)) return t;
533
+ }, ct = (e) => typeof e != "string", lt = (e, t) => {
534
+ if (ct(t)) return t;
530
535
  let n = t.trim();
531
536
  if (n.length === 0) return {};
532
537
  let r = {};
533
538
  for (let t = 0; t < e.questions.length; t += 1) {
534
539
  let i = e.questions[t];
535
- i.allowCustomAnswer && (r[rt(i, t)] = n);
540
+ i.allowCustomAnswer && (r[it(i, t)] = n);
536
541
  }
537
542
  return r;
538
- }, lt = (e, t, n) => {
543
+ }, ut = (e, t, n) => {
539
544
  if (!e) return typeof n == "string" ? n.trim() : "";
540
- let r = ot(e, t, ct(e, n)), i = typeof n == "string" ? n.trim() : "", a = e.questions.some((e) => e.allowCustomAnswer);
545
+ let r = st(e, t, lt(e, n)), i = typeof n == "string" ? n.trim() : "", a = e.questions.some((e) => e.allowCustomAnswer);
541
546
  return i.length > 0 && !a && r.push(`Additional response: ${i}`), r.join("\n");
542
- }, ut = (e, t, n) => {
543
- let r = ct(e, n);
547
+ }, dt = (e, t, n) => {
548
+ let r = lt(e, n);
544
549
  return e.questions.map((e, n) => {
545
- let i = rt(e, n), a = t[i] ?? [], o = r[i]?.trim();
550
+ let i = it(e, n), a = t[i] ?? [], o = r[i]?.trim();
546
551
  return o ? [...a, o] : a;
547
552
  });
548
- }, dt = (e, t, n) => {
553
+ }, ft = (e, t, n) => {
549
554
  if (!e) return !1;
550
- let r = ct(e, n);
555
+ let r = lt(e, n);
551
556
  for (let n = 0; n < e.questions.length; n += 1) {
552
557
  let i = e.questions[n];
553
558
  if (!i.required) continue;
554
- let a = rt(i, n);
559
+ let a = it(i, n);
555
560
  if (!((t[a] ?? []).length > 0) && !(i.allowCustomAnswer && r[a]?.trim())) return !0;
556
561
  }
557
562
  return !1;
558
- }, ft = (e) => e.questions.map((e, t) => ({
559
- id: rt(e, t),
563
+ }, pt = (e) => e.questions.map((e, t) => ({
564
+ id: it(e, t),
560
565
  question: e.question,
561
566
  options: e.options,
562
567
  multiple: !!e.multiple,
563
568
  required: !!e.required,
564
569
  allowCustomAnswer: !!e.allowCustomAnswer
565
- })), pt = (e, t, n, r) => {
566
- let i = rt(e, t);
570
+ })), mt = (e, t, n, r) => {
571
+ let i = it(e, t);
567
572
  return (n[i] ?? []).length > 0 || !!r[i]?.trim();
568
- }, mt = (e) => {
573
+ }, ht = (e) => {
569
574
  let t = B(22), { question: n, sourceQuestion: i, questionIndex: a, isActive: o, selectedOptionsByQuestion: s, customAnswersByQuestion: c, onSelectStep: l } = e, u;
570
- t[0] !== c || t[1] !== a || t[2] !== s || t[3] !== i ? (u = pt(i, a, s, c), t[0] = c, t[1] = a, t[2] = s, t[3] = i, t[4] = u) : u = t[4];
575
+ t[0] !== c || t[1] !== a || t[2] !== s || t[3] !== i ? (u = mt(i, a, s, c), t[0] = c, t[1] = a, t[2] = s, t[3] = i, t[4] = u) : u = t[4];
571
576
  let d = u, f = d ? "answered" : "not answered", p = o ? "outline" : "ghost", m = `question-step-tab-${n.id}`, h = `${n.question} (${f})`, g = `question-step-panel-${n.id}`, v;
572
577
  t[5] !== l || t[6] !== a ? (v = () => l(a), t[5] = l, t[6] = a, t[7] = v) : v = t[7];
573
578
  let y;
574
- t[8] !== d || t[9] !== a ? (y = d ? /* @__PURE__ */ H(ne, { "aria-hidden": "true" }) : a + 1, t[8] = d, t[9] = a, t[10] = y) : y = t[10];
579
+ t[8] !== d || t[9] !== a ? (y = d ? /* @__PURE__ */ H(X, { "aria-hidden": "true" }) : a + 1, t[8] = d, t[9] = a, t[10] = y) : y = t[10];
575
580
  let b;
576
581
  t[11] !== o || t[12] !== m || t[13] !== h || t[14] !== g || t[15] !== v || t[16] !== y || t[17] !== p ? (b = /* @__PURE__ */ H(_, {
577
582
  id: m,
@@ -590,14 +595,14 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
590
595
  content: n.question,
591
596
  children: b
592
597
  }), t[19] = n.question, t[20] = b, t[21] = x) : x = t[21], x;
593
- }, ht = (e) => {
598
+ }, gt = (e) => {
594
599
  let t = B(31), { questionPrompt: n, selectedOptionsByQuestion: r, customAnswersByQuestion: i, onToggleOption: a, onCustomAnswerChange: o } = e, { questions: s } = e, [c, l] = J(0), u = Math.min(c, s.length - 1), d = s[u], f = s.length > 1, p;
595
600
  t[0] !== i || t[1] !== f || t[2] !== n.questions || t[3] !== s || t[4] !== u || t[5] !== r ? (p = f ? /* @__PURE__ */ H(x, {
596
601
  role: "tablist",
597
602
  "aria-label": "Question steps",
598
603
  gap: "1",
599
604
  minWidth: "0",
600
- children: s.map((e, t) => /* @__PURE__ */ H(mt, {
605
+ children: s.map((e, t) => /* @__PURE__ */ H(ht, {
601
606
  question: e,
602
607
  sourceQuestion: n.questions[t],
603
608
  questionIndex: t,
@@ -618,7 +623,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
618
623
  o(n.questions[u], u, r);
619
624
  }, t[13] = o, t[14] = n.questions, t[15] = u, t[16] = y) : y = t[16];
620
625
  let b;
621
- t[17] !== i || t[18] !== r || t[19] !== _ || t[20] !== v || t[21] !== y ? (b = /* @__PURE__ */ H(tt, {
626
+ t[17] !== i || t[18] !== r || t[19] !== _ || t[20] !== v || t[21] !== y ? (b = /* @__PURE__ */ H(nt, {
622
627
  questions: _,
623
628
  editable: !0,
624
629
  selectedOptionsByQuestion: r,
@@ -640,17 +645,17 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
640
645
  pb: "sm",
641
646
  children: [p, S]
642
647
  }), t[28] = p, t[29] = S, t[30] = C) : C = t[30], C;
643
- }, gt = (e) => {
648
+ }, _t = (e) => {
644
649
  let t = B(8), { questionPrompt: n } = e, r;
645
- t[0] === n ? r = t[1] : (r = ft(n), t[0] = n, t[1] = r);
650
+ t[0] === n ? r = t[1] : (r = pt(n), t[0] = n, t[1] = r);
646
651
  let i = r, a;
647
- t[2] === n ? a = t[3] : (a = at(n), t[2] = n, t[3] = a);
652
+ t[2] === n ? a = t[3] : (a = ot(n), t[2] = n, t[3] = a);
648
653
  let o = a, s;
649
- return t[4] !== e || t[5] !== o || t[6] !== i ? (s = /* @__PURE__ */ H(ht, {
654
+ return t[4] !== e || t[5] !== o || t[6] !== i ? (s = /* @__PURE__ */ H(gt, {
650
655
  ...e,
651
656
  questions: i
652
657
  }, o), t[4] = e, t[5] = o, t[6] = i, t[7] = s) : s = t[7], s;
653
- }, _t = (e) => {
658
+ }, vt = (e) => {
654
659
  let t = B(22), n, r, i, a;
655
660
  t[0] === e ? (n = t[1], r = t[2], i = t[3], a = t[4]) : ({title: a, shortcut: i, canInterrupt: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r, t[3] = i, t[4] = a);
656
661
  let o = r["aria-label"] ?? a, s;
@@ -658,7 +663,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
658
663
  size: 16,
659
664
  strokeWidth: 2,
660
665
  fill: "currentColor"
661
- }) : /* @__PURE__ */ H(X, {
666
+ }) : /* @__PURE__ */ H(Y, {
662
667
  size: 16,
663
668
  strokeWidth: 2
664
669
  }), t[5] = n, t[6] = s);
@@ -698,7 +703,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
698
703
  }), t[19] = r, t[20] = o, t[21] = s) : s = t[21], s;
699
704
  }
700
705
  return u;
701
- }, vt = (e) => {
706
+ }, yt = (e) => {
702
707
  let t = [];
703
708
  for (let n = e.length - 1; n >= 0 && t.length < 10; n--) {
704
709
  let r = e[n];
@@ -707,7 +712,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
707
712
  i.trim() && t.push(i);
708
713
  }
709
714
  return t;
710
- }, yt = (e, t, n, r) => r === 0 ? null : e === null ? t === "previous" && n === "" ? { index: 0 } : null : t === "previous" ? { index: Math.min(e + 1, r - 1) } : { index: e === 0 ? null : e - 1 }, bt = (e) => {
715
+ }, bt = (e, t, n, r) => r === 0 ? null : e === null ? t === "previous" && n === "" ? { index: 0 } : null : t === "previous" ? { index: Math.min(e + 1, r - 1) } : { index: e === 0 ? null : e - 1 }, xt = (e) => {
711
716
  let t = B(24), { recentUserMessages: n, text: r, blocked: i, resetKey: a, onChange: o } = e, s = q(null), c = q(null), l, u;
712
717
  if (t[0] !== i || t[1] !== n || t[2] !== a) {
713
718
  l = n.slice(0, 10);
@@ -733,7 +738,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
733
738
  let v = _, y;
734
739
  t[12] !== i || t[13] !== o || t[14] !== l || t[15] !== r ? (y = (e) => {
735
740
  if (i) return !1;
736
- let t = yt(c.current, e, r, l.length);
741
+ let t = bt(c.current, e, r, l.length);
737
742
  if (!t) return !1;
738
743
  c.current = t.index;
739
744
  let n = t.index === null ? "" : l[t.index];
@@ -749,7 +754,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
749
754
  recallPrevious: x,
750
755
  recallNext: S
751
756
  }, t[20] = v, t[21] = x, t[22] = S, t[23] = C) : C = t[23], C;
752
- }, xt = (e) => {
757
+ }, St = (e) => {
753
758
  let t = B(2), { placeholder: n } = e;
754
759
  if (!n) return null;
755
760
  let r;
@@ -761,16 +766,16 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
761
766
  top: "0",
762
767
  children: n
763
768
  }), t[0] = n, t[1] = r), r;
764
- }, St = "border.accent-light", Ct = (e) => {
769
+ }, Ct = "border.accent-light", wt = (e) => {
765
770
  let t = e?.querySelector("[contenteditable=\"true\"]");
766
771
  t instanceof HTMLElement && t.focus();
767
- }, wt = (e, t) => requestAnimationFrame(() => {
768
- Ct(e), t?.();
769
- }), Tt = (e, t, n, r) => {
772
+ }, Tt = (e, t) => requestAnimationFrame(() => {
773
+ wt(e), t?.();
774
+ }), Et = (e, t, n, r) => {
770
775
  let i = B(10), a, o;
771
776
  i[0] !== t || i[1] !== e || i[2] !== r ? (a = () => {
772
777
  if (!t) return;
773
- let n = wt(e.current, () => r(!0));
778
+ let n = Tt(e.current, () => r(!0));
774
779
  return () => cancelAnimationFrame(n);
775
780
  }, o = [
776
781
  t,
@@ -780,26 +785,26 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
780
785
  let s, c;
781
786
  i[5] !== e || i[6] !== n || i[7] !== r ? (s = () => {
782
787
  if (n === 0) return;
783
- let t = wt(e.current, () => r(!0));
788
+ let t = Tt(e.current, () => r(!0));
784
789
  return () => cancelAnimationFrame(t);
785
790
  }, c = [
786
791
  n,
787
792
  e,
788
793
  r
789
794
  ], i[5] = e, i[6] = n, i[7] = r, i[8] = s, i[9] = c) : (s = i[8], c = i[9]), K(s, c);
790
- }, Et = (e) => {
791
- let { defaultState: t, recentUserMessages: n = [], onSubmit: r = () => {}, onInterrupt: a, onAttachFiles: o, onAttachText: s, textAttachmentPasteLineThreshold: c = 200, streaming: u = !1, attachedResources: f = [], onClearAttachments: p, isDisabled: m = !1, submitDisabled: h = !1, onChange: _, placeholder: v, attachmentList: y, actions: S, attachedToTop: C = !1, recessed: w = !1, questionPrompt: T, autoFocus: E = !1, focusSignal: D = 0, submitTitle: O, references: A = [], onAddReference: j } = e, M = w ? "border.subtle" : "border", [N, P] = J(!1), [F, I] = J(!1), [L, R] = J(t), [z, B] = J(0), [V, W] = J(() => l(t)), [G, ee] = J({}), [te, Y] = J({}), X = q(null), ne = q(_), re = q(at(T));
795
+ }, Dt = (e) => {
796
+ let { defaultState: t, recentUserMessages: n = [], onSubmit: r = () => {}, onInterrupt: a, onAttachFiles: o, onAttachText: s, textAttachmentPasteLineThreshold: c = 200, streaming: u = !1, attachedResources: f = [], onClearAttachments: p, isDisabled: m = !1, submitDisabled: h = !1, onChange: _, placeholder: v, attachmentList: y, actions: S, attachedToTop: C = !1, recessed: w = !1, questionPrompt: T, autoFocus: E = !1, focusSignal: D = 0, submitTitle: O, references: A = [], onAddReference: j } = e, M = w ? "border.subtle" : "border", [N, P] = J(!1), [F, I] = J(!1), [L, R] = J(t), [z, B] = J(0), [V, ee] = J(() => l(t)), [W, G] = J({}), [te, ne] = J({}), re = q(null), Y = q(_), X = q(ot(T));
792
797
  K(() => {
793
- ne.current = _;
798
+ Y.current = _;
794
799
  }, [_]), K(() => {
795
800
  let e = l(t);
796
- R(t), B((e) => e + 1), W(e), ee({}), Y({}), ne.current?.(e);
801
+ R(t), B((e) => e + 1), ee(e), G({}), ne({}), Y.current?.(e);
797
802
  }, [t]);
798
- let ie = at(T);
803
+ let ie = ot(T);
799
804
  K(() => {
800
- re.current !== ie && (re.current = ie, ee({}), Y({}));
801
- }, [ie]), Tt(X, E, D, I);
802
- let ae = bt({
805
+ X.current !== ie && (X.current = ie, G({}), ne({}));
806
+ }, [ie]), Et(re, E, D, I);
807
+ let Z = xt({
803
808
  recentUserMessages: n,
804
809
  text: V,
805
810
  blocked: m || N || !!T,
@@ -809,39 +814,39 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
809
814
  ie
810
815
  ]),
811
816
  onChange: (e) => {
812
- W(e), _?.(e);
817
+ ee(e), _?.(e);
813
818
  }
814
- }), oe = () => {
815
- I(!0), Ct(X.current);
816
- }, se = (e = !1) => {
817
- B((e) => e + 1), ee({}), Y({}), ae.reset(), ae.change(l(t)), e && requestAnimationFrame(() => {
818
- Ct(X.current);
819
+ }), ae = () => {
820
+ I(!0), wt(re.current);
821
+ }, oe = (e = !1) => {
822
+ B((e) => e + 1), G({}), ne({}), Z.reset(), Z.change(l(t)), e && requestAnimationFrame(() => {
823
+ wt(re.current);
819
824
  });
820
- }, ce = T ? lt(T, G, te) : V.trim(), le = dt(T, G, te), ue = {
825
+ }, se = T ? ut(T, W, te) : V.trim(), ce = ft(T, W, te), le = {
821
826
  canInterrupt: u && !T && !!a,
822
827
  canSubmit: !h,
823
828
  hasQuestionPrompt: !!T,
824
- isDisabled: m || N || le,
829
+ isDisabled: m || N || ce,
825
830
  streaming: u,
826
- text: ce
827
- }, de = qe(ue), fe = u && !T ? "Queue message" : "Send message", pe = async () => {
828
- if (!ce) return;
829
- let e = T ? { answers: ut(T, G, te) } : void 0;
830
- ae.reset(), P(!0);
831
+ text: se
832
+ }, ue = Je(le), de = u && !T ? "Queue message" : "Send message", fe = async () => {
833
+ if (!se) return;
834
+ let e = T ? { answers: dt(T, W, te) } : void 0;
835
+ Z.reset(), P(!0);
831
836
  try {
832
- await r(ce, f, e), se(!0), p?.();
837
+ await r(se, f, e), oe(!0), p?.();
833
838
  } catch {} finally {
834
839
  P(!1);
835
840
  }
836
- }, me = (e) => {
837
- e === "interrupt" && a?.(), e === "submit" && pe();
838
- }, he = Ye({
841
+ }, pe = (e) => {
842
+ e === "interrupt" && a?.(), e === "submit" && fe();
843
+ }, me = Xe({
839
844
  onAttachFiles: o,
840
845
  onAttachText: s,
841
846
  textAttachmentPasteLineThreshold: c
842
847
  });
843
848
  return /* @__PURE__ */ H(g, {
844
- ref: X,
849
+ ref: re,
845
850
  position: "relative",
846
851
  width: "100%",
847
852
  paddingX: "xs",
@@ -852,21 +857,21 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
852
857
  borderTopRadius: C ? "0" : void 0,
853
858
  borderWidth: "1px",
854
859
  borderStyle: "solid",
855
- borderColor: F ? St : M,
860
+ borderColor: F ? Ct : M,
856
861
  zIndex: +!!F,
857
862
  transition: "border-color 0.2s ease-in-out",
858
863
  _hover: {
859
- borderColor: F ? St : M,
864
+ borderColor: F ? Ct : M,
860
865
  zIndex: 1
861
866
  },
862
867
  _focusWithin: {
863
- borderColor: St,
868
+ borderColor: Ct,
864
869
  zIndex: 1
865
870
  },
866
- onPasteCapture: he.onPasteCapture,
867
- onDropCapture: he.onDropCapture,
868
- onDragOver: he.onDragOver,
869
- onClick: oe,
871
+ onPasteCapture: me.onPasteCapture,
872
+ onDropCapture: me.onDropCapture,
873
+ onDragOver: me.onDragOver,
874
+ onClick: ae,
870
875
  onBlur: () => I(!1),
871
876
  children: /* @__PURE__ */ U(b, {
872
877
  direction: "column",
@@ -874,16 +879,16 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
874
879
  gap: "xs",
875
880
  children: [
876
881
  y ? /* @__PURE__ */ H(g, { children: y }) : null,
877
- T ? /* @__PURE__ */ H(gt, {
882
+ T ? /* @__PURE__ */ H(_t, {
878
883
  questionPrompt: T,
879
- selectedOptionsByQuestion: G,
884
+ selectedOptionsByQuestion: W,
880
885
  customAnswersByQuestion: te,
881
886
  onToggleOption: (e, t, n) => {
882
- ee((r) => it(r, e, t, n));
887
+ G((r) => at(r, e, t, n));
883
888
  },
884
889
  onCustomAnswerChange: (e, t, n) => {
885
- let r = rt(e, t);
886
- Y((e) => ({
890
+ let r = it(e, t);
891
+ ne((e) => ({
887
892
  ...e,
888
893
  [r]: n
889
894
  }));
@@ -896,14 +901,14 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
896
901
  minH: "7",
897
902
  align: "center",
898
903
  children: /* @__PURE__ */ H(d, {
899
- ref: ae.editorRef,
900
- onRecallPrevious: ae.recallPrevious,
901
- onRecallNext: ae.recallNext,
904
+ ref: Z.editorRef,
905
+ onRecallPrevious: Z.recallPrevious,
906
+ onRecallNext: Z.recallNext,
902
907
  defaultState: L,
903
908
  isEditable: !m && !N,
904
- placeholder: /* @__PURE__ */ H(xt, { placeholder: v }),
905
- onChange: ae.change,
906
- onSubmit: () => me(Ke(ue)),
909
+ placeholder: /* @__PURE__ */ H(St, { placeholder: v }),
910
+ onChange: Z.change,
911
+ onSubmit: () => pe(qe(le)),
907
912
  references: A,
908
913
  onAddReference: j
909
914
  }, z)
@@ -916,75 +921,75 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
916
921
  children: [
917
922
  S,
918
923
  /* @__PURE__ */ H(k, {}),
919
- /* @__PURE__ */ H(_t, {
920
- canInterrupt: de === "interrupt",
921
- title: de === "interrupt" ? "Stop Response" : O ?? fe,
922
- shortcut: de === "submit" ? "Enter" : void 0,
923
- onClick: () => me(de),
924
- disabled: de === "none"
924
+ /* @__PURE__ */ H(vt, {
925
+ canInterrupt: ue === "interrupt",
926
+ title: ue === "interrupt" ? "Stop Response" : O ?? de,
927
+ shortcut: ue === "submit" ? "Enter" : void 0,
928
+ onClick: () => pe(ue),
929
+ disabled: ue === "none"
925
930
  })
926
931
  ]
927
932
  })
928
933
  ]
929
934
  })
930
935
  });
931
- }, Dt = (e) => typeof e == "object" && !!e && !Array.isArray(e), Ot = (e) => {
936
+ }, Ot = (e) => typeof e == "object" && !!e && !Array.isArray(e), kt = (e) => {
932
937
  try {
933
938
  let t = JSON.parse(e);
934
- return Dt(t) ? t : null;
939
+ return Ot(t) ? t : null;
935
940
  } catch {
936
941
  return null;
937
942
  }
938
- }, kt = (e) => Dt(e) ? e : typeof e == "string" && e.trim().length > 0 ? Ot(e) : null, At = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, jt = (e) => {
939
- let t = At(e);
943
+ }, At = (e) => Ot(e) ? e : typeof e == "string" && e.trim().length > 0 ? kt(e) : null, jt = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, Mt = (e) => {
944
+ let t = jt(e);
940
945
  if (t) return t;
941
946
  if (Array.isArray(e)) {
942
- let t = e.map(jt).filter((e) => e !== null);
947
+ let t = e.map(Mt).filter((e) => e !== null);
943
948
  return t.length > 0 ? t.join("\n") : null;
944
949
  }
945
- return Dt(e) ? jt(e.response) ?? jt(e.answer) ?? jt(e.text) ?? jt(e.answers) : null;
946
- }, Mt = (e) => {
950
+ return Ot(e) ? Mt(e.response) ?? Mt(e.answer) ?? Mt(e.text) ?? Mt(e.answers) : null;
951
+ }, Nt = (e) => {
947
952
  if (typeof e == "string" && e.trim().length > 0) return {
948
953
  label: e,
949
954
  description: void 0
950
955
  };
951
- if (!Dt(e)) return null;
952
- let t = At(e.label);
956
+ if (!Ot(e)) return null;
957
+ let t = jt(e.label);
953
958
  return t ? {
954
959
  label: t,
955
- description: At(e.description) ?? void 0
960
+ description: jt(e.description) ?? void 0
956
961
  } : null;
957
- }, Nt = (e, t) => {
958
- if (!Dt(e)) return null;
959
- let n = At(e.question);
962
+ }, Pt = (e, t) => {
963
+ if (!Ot(e)) return null;
964
+ let n = jt(e.question);
960
965
  if (!n) return null;
961
- let r = Array.isArray(e.options) ? e.options.map(Mt).filter((e) => e !== null) : [], i = At(e.type), a = typeof e.custom == "boolean" ? e.custom : typeof e.allowCustomAnswer == "boolean" ? e.allowCustomAnswer : r.length === 0 || i === "freeform" || i === "text";
966
+ let r = Array.isArray(e.options) ? e.options.map(Nt).filter((e) => e !== null) : [], i = jt(e.type), a = typeof e.custom == "boolean" ? e.custom : typeof e.allowCustomAnswer == "boolean" ? e.allowCustomAnswer : r.length === 0 || i === "freeform" || i === "text";
962
967
  return {
963
- id: At(e.id) ?? `question-${t}`,
968
+ id: jt(e.id) ?? `question-${t}`,
964
969
  question: n,
965
970
  options: r,
966
971
  multiple: typeof e.multiple == "boolean" ? e.multiple : i === "multi_choice" || i === "multiple_choice",
967
972
  required: typeof e.required != "boolean" || e.required,
968
973
  allowCustomAnswer: a
969
974
  };
970
- }, Pt = (e) => {
971
- let t = kt(e);
975
+ }, Ft = (e) => {
976
+ let t = At(e);
972
977
  if (!t || !Array.isArray(t.questions)) return null;
973
- let n = t.questions.map(Nt).filter((e) => e !== null);
978
+ let n = t.questions.map(Pt).filter((e) => e !== null);
974
979
  return n.length === 0 ? null : { questions: n };
975
- }, Ft = (e) => e.tool.toLowerCase() === "question", It = (e) => {
980
+ }, It = (e) => e.tool.toLowerCase() === "question", Lt = (e) => {
976
981
  for (let t = e.length - 1; t >= 0; --t) {
977
982
  let n = e[t];
978
983
  if (n.role === "assistant") for (let e = n.parts.length - 1; e >= 0; --e) {
979
984
  let t = n.parts[e];
980
- if (t.type === "tool" && Ft(t)) return jt(t.state?.output) ?? jt(t.state?.metadata) ? void 0 : Pt(t.state?.input) ?? void 0;
985
+ if (t.type === "tool" && It(t)) return Mt(t.state?.output) ?? Mt(t.state?.metadata) ? void 0 : Ft(t.state?.input) ?? void 0;
981
986
  }
982
987
  }
983
- }, Lt = {
988
+ }, Rt = {
984
989
  animationName: "message-fade-in",
985
990
  animationDuration: "200ms",
986
991
  animationTimingFunction: "ease-out"
987
- }, Rt = (e) => {
992
+ }, zt = (e) => {
988
993
  let t = /* @__PURE__ */ new Set(), n = new Set(e.state.seenKeys);
989
994
  for (let r of e.itemKeys) e.state.initialized && !n.has(r) && t.add(r), n.add(r);
990
995
  return {
@@ -994,17 +999,17 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
994
999
  seenKeys: n
995
1000
  }
996
1001
  };
997
- }, zt = (e, t) => {
1002
+ }, Bt = (e, t) => {
998
1003
  if (e.length !== t.length) return !1;
999
1004
  for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1;
1000
1005
  return !0;
1001
- }, Bt = (e) => {
1006
+ }, Vt = (e) => {
1002
1007
  let t = q({
1003
1008
  initialized: !1,
1004
1009
  seenKeys: /* @__PURE__ */ new Set()
1005
1010
  }), n = q(null);
1006
- if (n.current && zt(n.current.itemKeys, e)) return n.current.animatedKeys;
1007
- let r = Rt({
1011
+ if (n.current && Bt(n.current.itemKeys, e)) return n.current.animatedKeys;
1012
+ let r = zt({
1008
1013
  itemKeys: e,
1009
1014
  state: t.current
1010
1015
  });
@@ -1012,15 +1017,15 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1012
1017
  itemKeys: [...e],
1013
1018
  animatedKeys: r.animatedKeys
1014
1019
  }, r.animatedKeys;
1015
- }, Vt = (e) => e.type === "text", Ht = (e) => (e.parts ?? []).filter(Vt).map((e) => e.text.trim()).filter(Boolean).join("\n\n"), Ut = (e, t, n) => e.createdAt ? new Intl.DateTimeFormat(t, {
1020
+ }, Ht = (e) => e.type === "text", Ut = (e) => (e.parts ?? []).filter(Ht).map((e) => e.text.trim()).filter(Boolean).join("\n\n"), Wt = (e, t, n) => e.delivery === "unsent" ? "Not sent" : e.createdAt ? new Intl.DateTimeFormat(t, {
1016
1021
  hour: "numeric",
1017
1022
  minute: "2-digit",
1018
1023
  timeZone: n
1019
- }).format(new Date(e.createdAt)) : "", Wt = (e) => {
1024
+ }).format(new Date(e.createdAt)) : "", Gt = (e) => {
1020
1025
  let t = B(20), { message: n, alwaysVisible: i, copyAlwaysVisible: a } = e, o = i !== void 0 && i, s = a === void 0 ? o : a, [c, l] = J(!1), u = q(null), d;
1021
- t[0] === n ? d = t[1] : (d = Ht(n), t[0] = n, t[1] = d);
1026
+ t[0] === n ? d = t[1] : (d = Ut(n), t[0] = n, t[1] = d);
1022
1027
  let f = d, p;
1023
- t[2] === n ? p = t[3] : (p = Ut(n), t[2] = n, t[3] = p);
1028
+ t[2] === n ? p = t[3] : (p = Wt(n), t[2] = n, t[3] = p);
1024
1029
  let m = p, h, _;
1025
1030
  t[4] === Symbol.for("react.memo_cache_sentinel") ? (h = () => () => {
1026
1031
  u.current !== null && window.clearTimeout(u.current);
@@ -1046,7 +1051,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1046
1051
  opacity: s ? "1" : "0",
1047
1052
  pointerEvents: s ? "auto" : "none",
1048
1053
  transition: "opacity 120ms ease",
1049
- css: Gt,
1054
+ css: Kt,
1050
1055
  children: /* @__PURE__ */ H(r, {
1051
1056
  content: c ? "Copied" : "Copy message",
1052
1057
  children: /* @__PURE__ */ H(C, {
@@ -1054,7 +1059,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1054
1059
  variant: "ghost",
1055
1060
  size: "2xs",
1056
1061
  onClick: y,
1057
- children: H(c ? ne : ae, { size: 12 })
1062
+ children: H(c ? X : ae, { size: 12 })
1058
1063
  })
1059
1064
  })
1060
1065
  }) : null, t[10] = s, t[11] = y, t[12] = f, t[13] = c, t[14] = T) : T = t[14];
@@ -1066,10 +1071,10 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1066
1071
  opacity: b,
1067
1072
  pointerEvents: S,
1068
1073
  transition: "opacity 120ms ease",
1069
- css: Gt,
1074
+ css: Kt,
1070
1075
  children: [w, T]
1071
1076
  }), t[15] = T, t[16] = b, t[17] = S, t[18] = w, t[19] = E) : E = t[19], E;
1072
- }, Gt = {
1077
+ }, Kt = {
1073
1078
  "[data-chat-message-with-actions]:hover &, [data-chat-message-with-actions]:focus-within &": {
1074
1079
  opacity: 1,
1075
1080
  pointerEvents: "auto"
@@ -1082,7 +1087,7 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1082
1087
  opacity: 1,
1083
1088
  pointerEvents: "auto"
1084
1089
  }
1085
- }, Kt = (e) => {
1090
+ }, qt = (e) => {
1086
1091
  let t = B(8), n, r;
1087
1092
  t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
1088
1093
  let i;
@@ -1095,14 +1100,14 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1095
1100
  ...r,
1096
1101
  children: i
1097
1102
  }), t[5] = r, t[6] = i, t[7] = a) : a = t[7], a;
1098
- }, qt = (e) => e.replace(/^tool-/i, "").replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/[\s-]+/g, "_").toLowerCase(), Jt = (e) => {
1099
- let t = qt(e), n = t.replace(/_/g, "");
1103
+ }, Jt = (e) => e.replace(/^tool-/i, "").replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/[\s-]+/g, "_").toLowerCase(), Yt = (e) => {
1104
+ let t = Jt(e), n = t.replace(/_/g, "");
1100
1105
  return [.../* @__PURE__ */ new Set([
1101
1106
  e,
1102
1107
  t,
1103
1108
  n
1104
1109
  ])];
1105
- }, Yt = {
1110
+ }, Xt = {
1106
1111
  shell: we,
1107
1112
  ls: ge,
1108
1113
  read_file: de,
@@ -1112,20 +1117,20 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1112
1117
  upload_files: fe,
1113
1118
  download_file: le,
1114
1119
  move_file: ve
1115
- }, Xt = {
1120
+ }, Zt = {
1116
1121
  dot: oe,
1117
- danger: te,
1122
+ danger: ne,
1118
1123
  search: xe,
1119
1124
  browser: pe,
1120
1125
  file: se,
1121
- question: ie,
1126
+ question: Z,
1122
1127
  todo: he,
1123
1128
  terminal: we,
1124
- ...Yt
1125
- }, Zt = "dot", Qt = (e) => Object.hasOwn(Yt, e), $t = (e) => Xt[e], en = (e) => {
1126
- if (!e) return Zt;
1127
- let t = qt(e);
1128
- if (Qt(t)) return t;
1129
+ ...Xt
1130
+ }, Qt = "dot", $t = (e) => Object.hasOwn(Xt, e), en = (e) => Zt[e], tn = (e) => {
1131
+ if (!e) return Qt;
1132
+ let t = Jt(e);
1133
+ if ($t(t)) return t;
1129
1134
  let n = t.replace(/_/g, "");
1130
1135
  switch (t) {
1131
1136
  case "read": return "file";
@@ -1140,79 +1145,79 @@ var rt = (e, t) => e.id ?? `question-${t}`, it = (e, t, n, r) => {
1140
1145
  case "question": return "question";
1141
1146
  case "fs":
1142
1147
  case "file": return "file";
1143
- default: return n === "todowrite" || n === "todo" ? "todo" : Zt;
1148
+ default: return n === "todowrite" || n === "todo" ? "todo" : Qt;
1144
1149
  }
1145
1150
  };
1146
1151
  //#endregion
1147
1152
  //#region src/components/chat-ui/utils/diff.ts
1148
- function tn(e) {
1153
+ function nn(e) {
1149
1154
  let t = e.lastIndexOf("/");
1150
1155
  return t >= 0 ? e.slice(t + 1) : e;
1151
1156
  }
1152
- function nn(e) {
1157
+ function rn(e) {
1153
1158
  if (!e) return null;
1154
1159
  let t = e.split(" ")[0].trim();
1155
1160
  if (t === "/dev/null") return null;
1156
1161
  let n = t;
1157
1162
  return (n.startsWith("a/") || n.startsWith("b/")) && (n = n.slice(2)), n.replace(/^\/+/, "").replace(/\\/g, "/");
1158
1163
  }
1159
- var rn = (e) => e.startsWith("--- "), an = (e) => e.startsWith("+++ "), on = (e) => e.startsWith("@@"), sn = (e) => e.startsWith("+") && !(an(e) || e === "+++"), cn = (e) => e.startsWith("-") && !(rn(e) || e === "---"), ln = (e, t) => {
1164
+ var an = (e) => e.startsWith("--- "), on = (e) => e.startsWith("+++ "), sn = (e) => e.startsWith("@@"), cn = (e) => e.startsWith("+") && !(on(e) || e === "+++"), ln = (e) => e.startsWith("-") && !(an(e) || e === "---"), un = (e, t) => {
1160
1165
  e.has(t) || e.set(t, {
1161
1166
  additions: 0,
1162
1167
  deletions: 0
1163
1168
  });
1164
- }, un = (e, t) => {
1169
+ }, dn = (e, t) => {
1165
1170
  let n = e.get(t);
1166
1171
  n && (n.additions += 1);
1167
- }, dn = (e, t) => {
1172
+ }, fn = (e, t) => {
1168
1173
  let n = e.get(t);
1169
1174
  n && (n.deletions += 1);
1170
- }, fn = (e, t, n) => {
1171
- if (rn(e)) return {
1175
+ }, pn = (e, t, n) => {
1176
+ if (an(e)) return {
1172
1177
  ...t,
1173
- lastMinusHeader: nn(e.slice(4)),
1178
+ lastMinusHeader: rn(e.slice(4)),
1174
1179
  inHunk: !1
1175
1180
  };
1176
- if (an(e)) {
1177
- let r = nn(e.slice(4)) ?? t.lastMinusHeader;
1178
- return r && ln(n, r), {
1181
+ if (on(e)) {
1182
+ let r = rn(e.slice(4)) ?? t.lastMinusHeader;
1183
+ return r && un(n, r), {
1179
1184
  ...t,
1180
1185
  currentPath: r,
1181
1186
  inHunk: !1
1182
1187
  };
1183
1188
  }
1184
- return t.currentPath ? on(e) ? {
1189
+ return t.currentPath ? sn(e) ? {
1185
1190
  ...t,
1186
1191
  inHunk: !0
1187
- } : t.inHunk ? sn(e) ? (un(n, t.currentPath), t) : (cn(e) && dn(n, t.currentPath), t) : t : t;
1192
+ } : t.inHunk ? cn(e) ? (dn(n, t.currentPath), t) : (ln(e) && fn(n, t.currentPath), t) : t : t;
1188
1193
  };
1189
- function pn(e) {
1194
+ function mn(e) {
1190
1195
  if (!e || typeof e != "string") return [];
1191
1196
  let t = /* @__PURE__ */ new Map(), n = {
1192
1197
  currentPath: null,
1193
1198
  lastMinusHeader: null,
1194
1199
  inHunk: !1
1195
1200
  }, r = e.split(/\r?\n/);
1196
- for (let e of r) n = fn(e, n, t);
1201
+ for (let e of r) n = pn(e, n, t);
1197
1202
  return Array.from(t.entries()).map(([e, { additions: t, deletions: n }]) => ({
1198
1203
  filePath: e,
1199
1204
  additions: t,
1200
1205
  deletions: n
1201
1206
  }));
1202
1207
  }
1203
- function mn(e) {
1204
- return pn(e).map((e) => ({
1208
+ function hn(e) {
1209
+ return mn(e).map((e) => ({
1205
1210
  kind: "diff",
1206
- fileName: tn(e.filePath),
1211
+ fileName: nn(e.filePath),
1207
1212
  filePath: e.filePath,
1208
1213
  additions: e.additions,
1209
1214
  deletions: e.deletions
1210
1215
  }));
1211
1216
  }
1212
- function hn(e) {
1213
- return pn(e).map((e) => e.filePath);
1217
+ function gn(e) {
1218
+ return mn(e).map((e) => e.filePath);
1214
1219
  }
1215
- var gn = (e) => rn(e) || e.startsWith("diff --git "), _n = (e) => e.startsWith(" ") || e.startsWith("+") || e.startsWith("-") ? !1 : e.trim() !== "", vn = (e, t, n) => {
1220
+ var _n = (e) => an(e) || e.startsWith("diff --git "), vn = (e) => e.startsWith(" ") || e.startsWith("+") || e.startsWith("-") ? !1 : e.trim() !== "", yn = (e, t, n) => {
1216
1221
  if (e.startsWith(" ")) {
1217
1222
  let r = e.slice(1);
1218
1223
  t.push(r), n.push(r);
@@ -1223,26 +1228,26 @@ var gn = (e) => rn(e) || e.startsWith("diff --git "), _n = (e) => e.startsWith("
1223
1228
  return;
1224
1229
  }
1225
1230
  e.startsWith("+") && n.push(e.slice(1));
1226
- }, yn = (e, t, n, r) => {
1231
+ }, bn = (e, t, n, r) => {
1227
1232
  let i = t;
1228
1233
  for (; i < e.length;) {
1229
1234
  let t = e[i] || "";
1230
- if (gn(t) || on(t) || _n(t)) break;
1231
- vn(t, n, r), i += 1;
1235
+ if (_n(t) || sn(t) || vn(t)) break;
1236
+ yn(t, n, r), i += 1;
1232
1237
  }
1233
1238
  return (n.length > 0 || r.length > 0) && (n.push(""), r.push("")), i;
1234
- }, bn = (e, t) => {
1235
- let n = nn((e[t] || "").slice(4)), r = e[t + 1] || "";
1236
- if (!an(r)) return { nextIndex: t + 1 };
1237
- let i = nn(r.slice(4)) ?? n ?? "", a = [], o = [], s = t + 2;
1239
+ }, xn = (e, t) => {
1240
+ let n = rn((e[t] || "").slice(4)), r = e[t + 1] || "";
1241
+ if (!on(r)) return { nextIndex: t + 1 };
1242
+ let i = rn(r.slice(4)) ?? n ?? "", a = [], o = [], s = t + 2;
1238
1243
  for (; s < e.length;) {
1239
1244
  let t = e[s] || "";
1240
- if (gn(t)) break;
1241
- if (!on(t)) {
1245
+ if (_n(t)) break;
1246
+ if (!sn(t)) {
1242
1247
  s += 1;
1243
1248
  continue;
1244
1249
  }
1245
- s = yn(e, s + 1, a, o);
1250
+ s = bn(e, s + 1, a, o);
1246
1251
  }
1247
1252
  return {
1248
1253
  nextIndex: s,
@@ -1253,22 +1258,22 @@ var gn = (e) => rn(e) || e.startsWith("diff --git "), _n = (e) => e.startsWith("
1253
1258
  }
1254
1259
  };
1255
1260
  };
1256
- function xn(e) {
1261
+ function Sn(e) {
1257
1262
  if (!e || typeof e != "string") return [];
1258
1263
  let t = e.split(/\r?\n/), n = [], r = 0;
1259
1264
  for (; r < t.length;) {
1260
- if (!rn(t[r] || "")) {
1265
+ if (!an(t[r] || "")) {
1261
1266
  r += 1;
1262
1267
  continue;
1263
1268
  }
1264
- let { nextIndex: e, preview: i } = bn(t, r);
1269
+ let { nextIndex: e, preview: i } = xn(t, r);
1265
1270
  i && n.push(i), r = Math.max(e, r + 1);
1266
1271
  }
1267
1272
  return n;
1268
1273
  }
1269
1274
  //#endregion
1270
1275
  //#region src/components/chat-ui/tool-rendering/shared.ts
1271
- var Sn = {
1276
+ var Cn = {
1272
1277
  apply_patch: "Apply patch",
1273
1278
  bash: "Run command",
1274
1279
  edit: "Edit file",
@@ -1277,34 +1282,34 @@ var Sn = {
1277
1282
  read: "Read file",
1278
1283
  skill: "Load skill",
1279
1284
  todowrite: "Update todos"
1280
- }, Cn = {
1285
+ }, wn = {
1281
1286
  error: "failed",
1282
1287
  "output-error": "failed",
1283
1288
  input_streaming: "running",
1284
1289
  running: "running",
1285
1290
  completed: "completed",
1286
1291
  failed: "failed"
1287
- }, wn = (e) => e.replace(/^tool-/, "").toLowerCase(), Tn = (e) => e.split(" ").filter((e) => e.length > 0).map((e) => e[0].toUpperCase() + e.slice(1)).join(" "), En = (e) => wn(e.tool ?? "tool"), Dn = (e) => {
1288
- let t = wn(e);
1289
- return Sn[t] ?? Tn(t.replace(/_/g, " "));
1290
- }, On = (e) => {
1292
+ }, Tn = (e) => e.replace(/^tool-/, "").toLowerCase(), En = (e) => e.split(" ").filter((e) => e.length > 0).map((e) => e[0].toUpperCase() + e.slice(1)).join(" "), Dn = (e) => Tn(e.tool ?? "tool"), On = (e) => {
1293
+ let t = Tn(e);
1294
+ return Cn[t] ?? En(t.replace(/_/g, " "));
1295
+ }, kn = (e) => {
1291
1296
  let t = e.state?.status ?? e.status;
1292
1297
  if (!t || typeof t != "string") return null;
1293
1298
  let n = t.replace(/-/g, "_");
1294
- return Cn[n] ? Cn[n] : n.includes("stream") ? "running" : null;
1295
- }, kn = (e) => {
1299
+ return wn[n] ? wn[n] : n.includes("stream") ? "running" : null;
1300
+ }, An = (e) => {
1296
1301
  let t = e.state?.status ?? e.status;
1297
1302
  return t === "error" || t === "output-error" || t === "failed";
1298
- }, An = (e) => kn(e) ? {
1303
+ }, jn = (e) => An(e) ? {
1299
1304
  type: "icon",
1300
1305
  icon: "danger"
1301
1306
  } : {
1302
1307
  type: "icon",
1303
- icon: en(En(e))
1304
- }, jn = (e, t, n, r) => {
1308
+ icon: tn(Dn(e))
1309
+ }, Mn = (e, t, n, r) => {
1305
1310
  let i = [{
1306
1311
  kind: "text",
1307
- text: n ?? Dn(e.tool ?? "tool"),
1312
+ text: n ?? On(e.tool ?? "tool"),
1308
1313
  bold: !0
1309
1314
  }];
1310
1315
  t && i.push({
@@ -1316,100 +1321,100 @@ var Sn = {
1316
1321
  monospace: !0
1317
1322
  } : {}
1318
1323
  });
1319
- let a = On(e);
1324
+ let a = kn(e);
1320
1325
  return a && a !== "completed" && i.push({
1321
1326
  kind: "text",
1322
1327
  text: a,
1323
1328
  muted: !0
1324
1329
  }), i;
1325
- }, Mn = (e) => {
1330
+ }, Nn = (e) => {
1326
1331
  let t = e.state?.input;
1327
1332
  return !t || typeof t != "object" || Array.isArray(t) ? null : t;
1328
- }, Nn = (e) => {
1333
+ }, Pn = (e) => {
1329
1334
  let t = e.state?.output;
1330
1335
  return !t || typeof t != "object" || Array.isArray(t) ? null : t;
1331
- }, Q = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, Pn = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, Fn = (e, t) => {
1332
- let n = Pn(e.state);
1333
- return n ? Pn(n[t]) : null;
1334
- }, In = (e) => e.replace(/\\/g, "/").replace(/^\/+/, ""), Ln = (e) => e.includes("--- ") && e.includes("+++ ") && e.includes("@@"), Rn = (e) => {
1335
- let t = Nn(e);
1336
- return [Fn(e, "metadata"), Pn(t?.metadata)].filter(Boolean);
1337
- }, zn = (e) => {
1336
+ }, Q = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, Fn = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, In = (e, t) => {
1337
+ let n = Fn(e.state);
1338
+ return n ? Fn(n[t]) : null;
1339
+ }, Ln = (e) => e.replace(/\\/g, "/").replace(/^\/+/, ""), Rn = (e) => e.includes("--- ") && e.includes("+++ ") && e.includes("@@"), zn = (e) => {
1338
1340
  let t = Pn(e);
1341
+ return [In(e, "metadata"), Fn(t?.metadata)].filter(Boolean);
1342
+ }, Bn = (e) => {
1343
+ let t = Fn(e);
1339
1344
  if (!t) return null;
1340
1345
  let n = Q(t.filePath) ?? Q(t.relativePath) ?? Q(t.path);
1341
1346
  return n ? {
1342
- filePath: In(n),
1347
+ filePath: Ln(n),
1343
1348
  additions: typeof t.additions == "number" ? t.additions : 0,
1344
1349
  deletions: typeof t.deletions == "number" ? t.deletions : 0,
1345
1350
  diff: Q(t.diff) ?? void 0,
1346
1351
  before: Q(t.before) ?? void 0,
1347
1352
  after: Q(t.after) ?? void 0
1348
1353
  } : null;
1349
- }, Bn = (e) => {
1354
+ }, Vn = (e) => {
1350
1355
  let t = [];
1351
- for (let n of Rn(e)) {
1356
+ for (let n of zn(e)) {
1352
1357
  let e = Array.isArray(n.files) ? n.files : [];
1353
1358
  for (let n of e) {
1354
- let e = zn(n);
1359
+ let e = Bn(n);
1355
1360
  e && t.push(e);
1356
1361
  }
1357
1362
  }
1358
1363
  return t;
1359
- }, Vn = (e) => {
1360
- let t = Mn(e), n = (Array.isArray(t?.changes) ? t.changes : []).map((e) => Q(Pn(e)?.path)).filter((e) => !!e).map(In);
1361
- return Array.from(new Set(n));
1362
1364
  }, Hn = (e) => {
1363
- let t = Mn(e), n = Q(t?.diff);
1365
+ let t = Nn(e), n = (Array.isArray(t?.changes) ? t.changes : []).map((e) => Q(Fn(e)?.path)).filter((e) => !!e).map(Ln);
1366
+ return Array.from(new Set(n));
1367
+ }, Un = (e) => {
1368
+ let t = Nn(e), n = Q(t?.diff);
1364
1369
  if (n) return n;
1365
- for (let t of Rn(e)) {
1370
+ for (let t of zn(e)) {
1366
1371
  let e = Q(t.diff);
1367
1372
  if (e) return e;
1368
1373
  }
1369
- let r = Bn(e).map((e) => e.diff).filter((e) => !!e);
1374
+ let r = Vn(e).map((e) => e.diff).filter((e) => !!e);
1370
1375
  if (r.length > 0) return r.join("\n");
1371
1376
  let i = Q(t?.patchText);
1372
- return i && Ln(i) ? i : null;
1373
- }, Un = (e) => {
1377
+ return i && Rn(i) ? i : null;
1378
+ }, Wn = (e) => {
1374
1379
  let t = /* @__PURE__ */ new Set(), n = [];
1375
1380
  for (let r of e) t.has(r.filePath) || (t.add(r.filePath), n.push({
1376
1381
  kind: "diff",
1377
- fileName: tn(r.filePath),
1382
+ fileName: nn(r.filePath),
1378
1383
  filePath: r.filePath,
1379
1384
  additions: r.additions,
1380
1385
  deletions: r.deletions
1381
1386
  }));
1382
1387
  return n;
1383
- }, Wn = (e) => Array.from(new Set(e.map((e) => e.filePath))), Gn = (e) => {
1384
- let t = Nn(e);
1388
+ }, Gn = (e) => Array.from(new Set(e.map((e) => e.filePath))), Kn = (e) => {
1389
+ let t = Pn(e);
1385
1390
  return Q(e.state?.output) ?? Q(t?.returnDisplay) ?? Q(t?.preview) ?? Q(t?.stdout) ?? Q(t?.content);
1386
- }, Kn = (e) => {
1391
+ }, qn = (e) => {
1387
1392
  let t = e.match(/<skill_content(?:\s+name="([^"]+)")?>([\s\S]*?)<\/skill_content>/);
1388
1393
  return t ? {
1389
1394
  skillName: Q(t[1]) ?? void 0,
1390
1395
  content: Q(t[2]) ?? ""
1391
1396
  } : null;
1392
- }, qn = (e) => {
1393
- let t = Mn(e);
1397
+ }, Jn = (e) => {
1398
+ let t = Nn(e);
1394
1399
  return Q(t?.name) ?? Q(t?.skillName) ?? Q(t?.skill) ?? Q(t?.skill_name) ?? void 0;
1395
- }, Jn = (e, t) => ({
1400
+ }, Yn = (e, t) => ({
1396
1401
  kind: "link",
1397
- text: tn(e),
1402
+ text: nn(e),
1398
1403
  filePath: e,
1399
1404
  ...t ? { variant: t } : {}
1400
- }), Yn = (e, t) => !kn(e) || !e.state?.errorText ? t : [{
1405
+ }), Xn = (e, t) => !An(e) || !e.state?.errorText ? t : [{
1401
1406
  type: "comment",
1402
1407
  text: e.state.errorText
1403
- }, ...t], Xn = (e) => xn(e ?? void 0).map((e) => ({
1408
+ }, ...t], Zn = (e) => Sn(e ?? void 0).map((e) => ({
1404
1409
  type: "diff",
1405
1410
  language: "diff",
1406
1411
  original: e.original,
1407
1412
  modified: e.modified,
1408
1413
  sideBySide: !1
1409
- })), Zn = (e) => mn(e ?? void 0), Qn = (e) => hn(e ?? void 0), $n = (e) => {
1410
- let t = Hn(e), n = Bn(e), r = Vn(e), i = jn(e, void 0, "Apply patch"), a = Zn(t);
1411
- a.length > 0 ? i.push(...a) : n.length > 0 ? i.push(...Un(n)) : i.push(...r.map((e) => Jn(e, "bubble")));
1412
- let o = [...Xn(t)];
1414
+ })), Qn = (e) => hn(e ?? void 0), $n = (e) => gn(e ?? void 0), er = (e) => {
1415
+ let t = Un(e), n = Vn(e), r = Hn(e), i = Mn(e, void 0, "Apply patch"), a = Qn(t);
1416
+ a.length > 0 ? i.push(...a) : n.length > 0 ? i.push(...Wn(n)) : i.push(...r.map((e) => Yn(e, "bubble")));
1417
+ let o = [...Zn(t)];
1413
1418
  if (o.length === 0) for (let e of n) (e.before || e.after) && o.push({
1414
1419
  type: "diff",
1415
1420
  language: "diff",
@@ -1418,36 +1423,36 @@ var Sn = {
1418
1423
  sideBySide: !1
1419
1424
  });
1420
1425
  if (o.length === 0) {
1421
- let e = Qn(t);
1422
- e.length === 0 && e.push(...Wn(n)), e.length === 0 && e.push(...r), e.length > 0 && o.push({
1426
+ let e = $n(t);
1427
+ e.length === 0 && e.push(...Gn(n)), e.length === 0 && e.push(...r), e.length > 0 && o.push({
1423
1428
  type: "references",
1424
1429
  references: e
1425
1430
  });
1426
1431
  }
1427
1432
  return {
1428
- indicator: An(e),
1433
+ indicator: jn(e),
1429
1434
  title: i,
1430
- blocks: Yn(e, o)
1435
+ blocks: Xn(e, o)
1431
1436
  };
1432
- }, er = (e, t) => [{
1437
+ }, tr = (e, t) => [{
1433
1438
  type: "diff",
1434
1439
  language: "text",
1435
1440
  original: e,
1436
1441
  modified: t,
1437
1442
  sideBySide: !1
1438
- }], tr = (e) => {
1439
- let t = Mn(e), n = Nn(e), r = Q(t?.filePath) ?? Q(t?.file_path) ?? Q(n?.filePath) ?? void 0, i = Q(n?.oldString) ?? Q(t?.old_string) ?? void 0, a = Q(n?.newString) ?? Q(t?.new_string) ?? void 0, o = jn(e, void 0, "Edit file");
1440
- r && o.push(Jn(r));
1441
- let s = i !== void 0 && a !== void 0 ? er(i, a) : Xn(Q(n?.diff));
1443
+ }], nr = (e) => {
1444
+ let t = Nn(e), n = Pn(e), r = Q(t?.filePath) ?? Q(t?.file_path) ?? Q(n?.filePath) ?? void 0, i = Q(n?.oldString) ?? Q(t?.old_string) ?? void 0, a = Q(n?.newString) ?? Q(t?.new_string) ?? void 0, o = Mn(e, void 0, "Edit file");
1445
+ r && o.push(Yn(r));
1446
+ let s = i !== void 0 && a !== void 0 ? tr(i, a) : Zn(Q(n?.diff));
1442
1447
  return {
1443
- indicator: An(e),
1448
+ indicator: jn(e),
1444
1449
  title: o,
1445
- blocks: Yn(e, s)
1450
+ blocks: Xn(e, s)
1446
1451
  };
1447
- }, nr = (e) => {
1452
+ }, rr = (e) => {
1448
1453
  let { buildBaseTitle: t, buildIndicator: n, prependErrorBlock: r } = e;
1449
1454
  return (e) => {
1450
- let i = jt(e.state?.output) ?? jt(e.state?.metadata), a = Pt(e.state?.input), o = a ? {
1455
+ let i = Mt(e.state?.output) ?? Mt(e.state?.metadata), a = Ft(e.state?.input), o = a ? {
1451
1456
  type: "question-form",
1452
1457
  questions: a.questions
1453
1458
  } : null;
@@ -1460,15 +1465,15 @@ var Sn = {
1460
1465
  expandable: !1
1461
1466
  };
1462
1467
  };
1463
- }, rr = (e) => {
1464
- let t = Mn(e), n = Nn(e), r = Q(t?.filePath) ?? Q(t?.file_path) ?? Q(t?.file) ?? Q(n?.filePath) ?? Q(n?.file) ?? Q(n?.path) ?? void 0, i = jn(e, void 0, "Read file");
1465
- return r && i.push(Jn(r)), {
1466
- indicator: An(e),
1468
+ }, ir = (e) => {
1469
+ let t = Nn(e), n = Pn(e), r = Q(t?.filePath) ?? Q(t?.file_path) ?? Q(t?.file) ?? Q(n?.filePath) ?? Q(n?.file) ?? Q(n?.path) ?? void 0, i = Mn(e, void 0, "Read file");
1470
+ return r && i.push(Yn(r)), {
1471
+ indicator: jn(e),
1467
1472
  title: i,
1468
- blocks: Yn(e, [])
1473
+ blocks: Xn(e, [])
1469
1474
  };
1470
- }, ir = (e, t) => {
1471
- let n = Mn(e), r = Nn(e), i = jn(e, Q(n?.command) ?? void 0, t, "monospace"), a = [], o = Gn(e);
1475
+ }, ar = (e, t) => {
1476
+ let n = Nn(e), r = Pn(e), i = Mn(e, Q(n?.command) ?? void 0, t, "monospace"), a = [], o = Kn(e);
1472
1477
  o && a.push({
1473
1478
  type: "code",
1474
1479
  language: "text",
@@ -1483,23 +1488,23 @@ var Sn = {
1483
1488
  type: "text",
1484
1489
  text: `Exit code: ${r.exitCode}`
1485
1490
  }), {
1486
- indicator: An(e),
1491
+ indicator: jn(e),
1487
1492
  title: i,
1488
- blocks: Yn(e, a)
1493
+ blocks: Xn(e, a)
1489
1494
  };
1490
- }, ar = (e) => ir(e, "Run command"), or = (e) => ir(e, "Shell"), sr = (e) => {
1491
- let t = Mn(e), n = Gn(e), r = jn(e, Q(t?.pattern) ?? void 0, "Search files"), i = n ? [{
1495
+ }, or = (e) => ar(e, "Run command"), sr = (e) => ar(e, "Shell"), cr = (e) => {
1496
+ let t = Nn(e), n = Kn(e), r = Mn(e, Q(t?.pattern) ?? void 0, "Search files"), i = n ? [{
1492
1497
  type: "code",
1493
1498
  language: "text",
1494
1499
  code: n
1495
1500
  }] : [];
1496
1501
  return {
1497
- indicator: An(e),
1502
+ indicator: jn(e),
1498
1503
  title: r,
1499
- blocks: Yn(e, i)
1504
+ blocks: Xn(e, i)
1500
1505
  };
1501
- }, cr = (e) => {
1502
- let t = Mn(e), n = Gn(e), r = jn(e, Q(t?.pattern) ?? void 0, "Find files"), i = [];
1506
+ }, lr = (e) => {
1507
+ let t = Nn(e), n = Kn(e), r = Mn(e, Q(t?.pattern) ?? void 0, "Find files"), i = [];
1503
1508
  if (n) {
1504
1509
  let e = n.split(/\r?\n/).map((e) => e.trim()).filter((e) => e.length > 0);
1505
1510
  e.length > 0 && i.push({
@@ -1508,50 +1513,50 @@ var Sn = {
1508
1513
  });
1509
1514
  }
1510
1515
  return {
1511
- indicator: An(e),
1516
+ indicator: jn(e),
1512
1517
  title: r,
1513
- blocks: Yn(e, i)
1518
+ blocks: Xn(e, i)
1514
1519
  };
1515
- }, lr = (e) => {
1516
- let t = Gn(e), n = t ? Kn(t) : null, r = jn(e, qn(e) ?? n?.skillName, "Load skill"), i = n?.content ?? t, a = i ? [{
1520
+ }, ur = (e) => {
1521
+ let t = Kn(e), n = t ? qn(t) : null, r = Mn(e, Jn(e) ?? n?.skillName, "Load skill"), i = n?.content ?? t, a = i ? [{
1517
1522
  type: "code",
1518
1523
  language: "markdown",
1519
1524
  code: i
1520
1525
  }] : [];
1521
1526
  return {
1522
- indicator: An(e),
1527
+ indicator: jn(e),
1523
1528
  title: r,
1524
- blocks: Yn(e, a)
1529
+ blocks: Xn(e, a)
1525
1530
  };
1526
- }, ur = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, dr = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, fr = (e) => {
1527
- let t = dr(e);
1531
+ }, dr = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, fr = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, pr = (e) => {
1532
+ let t = fr(e);
1528
1533
  if (!t) return null;
1529
- let n = ur(t.content) ?? ur(t.title);
1534
+ let n = dr(t.content) ?? dr(t.title);
1530
1535
  return n ? {
1531
1536
  label: n,
1532
- checked: ur(t.status) === "completed"
1537
+ checked: dr(t.status) === "completed"
1533
1538
  } : null;
1534
- }, pr = (e) => {
1539
+ }, mr = (e) => {
1535
1540
  if (!e) return {
1536
1541
  items: [],
1537
1542
  explicit: !1
1538
1543
  };
1539
1544
  let t = (() => {
1540
1545
  if (Array.isArray(e)) return e;
1541
- let t = dr(e);
1546
+ let t = fr(e);
1542
1547
  return !t || !Array.isArray(t.todos) ? null : t.todos;
1543
1548
  })();
1544
1549
  return t ? {
1545
- items: t.map(fr).filter((e) => e !== null),
1550
+ items: t.map(pr).filter((e) => e !== null),
1546
1551
  explicit: !0
1547
1552
  } : {
1548
1553
  items: [],
1549
1554
  explicit: !1
1550
1555
  };
1551
- }, mr = (e) => {
1556
+ }, hr = (e) => {
1552
1557
  let { buildBaseTitle: t, buildIndicator: n, prependErrorBlock: r } = e;
1553
1558
  return (e) => {
1554
- let i = pr(e.state?.input), a = pr(e.state?.output), o = a.explicit ? a : i;
1559
+ let i = mr(e.state?.input), a = mr(e.state?.output), o = a.explicit ? a : i;
1555
1560
  if (!o.explicit) return null;
1556
1561
  let s = o.items, c = `${s.length} item${s.length === 1 ? "" : "s"}`, l = t(e, c, "Update todos");
1557
1562
  if (s.length === 0) return {
@@ -1572,37 +1577,37 @@ var Sn = {
1572
1577
  blocks: r(e, u)
1573
1578
  };
1574
1579
  };
1575
- }, hr = nr({
1576
- buildBaseTitle: jn,
1577
- buildIndicator: An,
1578
- prependErrorBlock: Yn
1579
- }), gr = mr({
1580
- buildBaseTitle: jn,
1581
- buildIndicator: An,
1582
- prependErrorBlock: Yn
1583
- }), _r = () => ({
1584
- apply_patch: $n,
1585
- bash: ar,
1586
- edit: tr,
1587
- glob: cr,
1588
- grep: sr,
1589
- question: hr,
1590
- read: rr,
1591
- shell: or,
1592
- skill: lr,
1593
- todo_write: gr,
1594
- todowrite: gr
1595
- }), vr = {
1580
+ }, gr = rr({
1581
+ buildBaseTitle: Mn,
1582
+ buildIndicator: jn,
1583
+ prependErrorBlock: Xn
1584
+ }), _r = hr({
1585
+ buildBaseTitle: Mn,
1586
+ buildIndicator: jn,
1587
+ prependErrorBlock: Xn
1588
+ }), vr = () => ({
1589
+ apply_patch: er,
1590
+ bash: or,
1591
+ edit: nr,
1592
+ glob: lr,
1593
+ grep: cr,
1594
+ question: gr,
1595
+ read: ir,
1596
+ shell: sr,
1597
+ skill: ur,
1598
+ todo_write: _r,
1599
+ todowrite: _r
1600
+ }), yr = {
1596
1601
  error: "failed",
1597
1602
  "output-error": "failed",
1598
1603
  "input-streaming": "running"
1599
- }, yr = (e) => e.split(" ").filter((e) => e.length > 0).map((e) => e[0].toUpperCase() + e.slice(1)).join(" "), br = (e) => yr(qt(e ?? "tool").replace(/_/g, " ")), xr = (e) => e === "error" || e === "output-error", Sr = (e) => xr(e.state?.status) ? {
1604
+ }, br = (e) => e.split(" ").filter((e) => e.length > 0).map((e) => e[0].toUpperCase() + e.slice(1)).join(" "), xr = (e) => br(Jt(e ?? "tool").replace(/_/g, " ")), Sr = (e) => e === "error" || e === "output-error", Cr = (e) => Sr(e.state?.status) ? {
1600
1605
  type: "icon",
1601
1606
  icon: "danger"
1602
1607
  } : {
1603
1608
  type: "icon",
1604
- icon: en(e.tool ?? "tool")
1605
- }, Cr = (e) => !e || typeof e != "string" ? null : vr[e] ? vr[e] : e.includes("stream") ? "running" : null, wr = (e) => {
1609
+ icon: tn(e.tool ?? "tool")
1610
+ }, wr = (e) => !e || typeof e != "string" ? null : yr[e] ? yr[e] : e.includes("stream") ? "running" : null, Tr = (e) => {
1606
1611
  if (typeof e == "string") return e;
1607
1612
  if (e == null) return null;
1608
1613
  try {
@@ -1610,30 +1615,30 @@ var Sn = {
1610
1615
  } catch {
1611
1616
  return null;
1612
1617
  }
1613
- }, Tr = (e) => e == null ? !0 : typeof e == "string" ? e.trim().length === 0 : Array.isArray(e) ? e.length === 0 || e.every(Tr) : typeof e == "object" && Object.values(e).every(Tr), Er = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, $ = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, Dr = (e) => $(e.mime_type) ?? $(e.mediaType) ?? $(e.mimeType), Or = (e) => !!e?.startsWith("image/"), kr = /\.(avif|bmp|gif|jpe?g|png|svg|webp)(\?.*)?$/i, Ar = (e, t) => {
1614
- let n = Er(e);
1618
+ }, Er = (e) => e == null ? !0 : typeof e == "string" ? e.trim().length === 0 : Array.isArray(e) ? e.length === 0 || e.every(Er) : typeof e == "object" && Object.values(e).every(Er), Dr = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, $ = (e) => typeof e == "string" && e.trim().length > 0 ? e : null, Or = (e) => $(e.mime_type) ?? $(e.mediaType) ?? $(e.mimeType), kr = (e) => !!e?.startsWith("image/"), Ar = /\.(avif|bmp|gif|jpe?g|png|svg|webp)(\?.*)?$/i, jr = (e, t) => {
1619
+ let n = Dr(e);
1615
1620
  if (!n) return null;
1616
- let r = Dr(n), i = $(n.data);
1617
- if (i && Or(r)) return {
1621
+ let r = Or(n), i = $(n.data);
1622
+ if (i && kr(r)) return {
1618
1623
  type: "image",
1619
1624
  src: `data:${r};base64,${i}`,
1620
1625
  alt: t
1621
1626
  };
1622
1627
  let a = $(n.url) ?? $(n.src);
1623
- return a && (Or(r) || kr.test(a)) ? {
1628
+ return a && (kr(r) || Ar.test(a)) ? {
1624
1629
  type: "image",
1625
1630
  src: a,
1626
1631
  alt: t
1627
1632
  } : null;
1628
- }, jr = (e) => {
1629
- let t = Er(e);
1633
+ }, Mr = (e) => {
1634
+ let t = Dr(e);
1630
1635
  if (!t) return null;
1631
1636
  let n = $(t.path) ?? $(t.filePath) ?? $(t.filename), r = $(t.content) ?? $(t.body) ?? $(t.text);
1632
1637
  return !n || r === null ? null : {
1633
1638
  filePath: n,
1634
1639
  content: r
1635
1640
  };
1636
- }, Mr = {
1641
+ }, Nr = {
1637
1642
  css: "css",
1638
1643
  html: "html",
1639
1644
  js: "js",
@@ -1645,18 +1650,18 @@ var Sn = {
1645
1650
  tsx: "tsx",
1646
1651
  yaml: "yaml",
1647
1652
  yml: "yaml"
1648
- }, Nr = (e) => {
1653
+ }, Pr = (e) => {
1649
1654
  let t = e.split(".").pop()?.toLowerCase();
1650
- return t ? Mr[t] ?? t : "text";
1651
- }, Pr = (e, t) => t.length === 0 ? [] : [{
1655
+ return t ? Nr[t] ?? t : "text";
1656
+ }, Fr = (e, t) => t.length === 0 ? [] : [{
1652
1657
  type: "text",
1653
1658
  text: e
1654
- }, ...t], Fr = (e, t) => {
1659
+ }, ...t], Ir = (e, t) => {
1655
1660
  let n = [];
1656
1661
  for (let r of e) {
1657
- let e = Er(r), i = $(e?.type);
1662
+ let e = Dr(r), i = $(e?.type);
1658
1663
  if (i === "image") {
1659
- let e = Ar(r, t);
1664
+ let e = jr(r, t);
1660
1665
  e && n.push(e);
1661
1666
  continue;
1662
1667
  }
@@ -1668,65 +1673,65 @@ var Sn = {
1668
1673
  });
1669
1674
  continue;
1670
1675
  }
1671
- n.push(...Rr(r, t));
1676
+ n.push(...zr(r, t));
1672
1677
  }
1673
1678
  return n;
1674
- }, Ir = (e) => {
1675
- let t = jr(e);
1679
+ }, Lr = (e) => {
1680
+ let t = Mr(e);
1676
1681
  return t ? [{
1677
1682
  type: "code",
1678
- language: Nr(t.filePath),
1683
+ language: Pr(t.filePath),
1679
1684
  code: t.content
1680
1685
  }] : null;
1681
- }, Lr = (e) => {
1682
- let t = Er(e), n = $(t?.attachment_name) ?? $(t?.attachmentName), r = $(t?.attachment_file_id) ?? $(t?.attachmentFileId);
1686
+ }, Rr = (e) => {
1687
+ let t = Dr(e), n = $(t?.attachment_name) ?? $(t?.attachmentName), r = $(t?.attachment_file_id) ?? $(t?.attachmentFileId);
1683
1688
  return !n && !r ? null : [{
1684
1689
  type: "text",
1685
1690
  text: n ?? `Attachment ${r}`
1686
1691
  }];
1687
- }, Rr = (e, t) => {
1688
- if (Tr(e)) return [];
1689
- let n = Ar(e, t);
1692
+ }, zr = (e, t) => {
1693
+ if (Er(e)) return [];
1694
+ let n = jr(e, t);
1690
1695
  if (n) return [n];
1691
- if (Array.isArray(e)) return Fr(e, t);
1692
- let r = Ir(e);
1696
+ if (Array.isArray(e)) return Ir(e, t);
1697
+ let r = Lr(e);
1693
1698
  if (r) return r;
1694
- let i = Lr(e);
1699
+ let i = Rr(e);
1695
1700
  if (i) return i;
1696
- let a = wr(e);
1701
+ let a = Tr(e);
1697
1702
  return a?.trim() ? [{
1698
1703
  type: "code",
1699
1704
  language: typeof e == "string" ? "text" : "json",
1700
1705
  code: a
1701
1706
  }] : [];
1702
- }, zr = (e) => {
1703
- let t = [], n = br(e.tool);
1704
- return xr(e.state?.status) && e.state?.errorText && t.push({
1707
+ }, Br = (e) => {
1708
+ let t = [], n = xr(e.tool);
1709
+ return Sr(e.state?.status) && e.state?.errorText && t.push({
1705
1710
  type: "comment",
1706
1711
  text: e.state.errorText
1707
- }), t.push(...Pr("Input", Rr(e.state?.input, `${n} input`))), t.push(...Pr("Output", Rr(e.state?.output, `${n} output`))), t;
1708
- }, Br = (e) => {
1712
+ }), t.push(...Fr("Input", zr(e.state?.input, `${n} input`))), t.push(...Fr("Output", zr(e.state?.output, `${n} output`))), t;
1713
+ }, Vr = (e) => {
1709
1714
  let t = [{
1710
1715
  kind: "text",
1711
- text: br(e.tool),
1716
+ text: xr(e.tool),
1712
1717
  bold: !0
1713
- }], n = jr(e.state?.output);
1718
+ }], n = Mr(e.state?.output);
1714
1719
  n && t.push({
1715
1720
  kind: "link",
1716
1721
  text: n.filePath,
1717
1722
  filePath: n.filePath
1718
1723
  });
1719
- let r = Cr(e.state?.status);
1724
+ let r = wr(e.state?.status);
1720
1725
  return r && t.push({
1721
1726
  kind: "text",
1722
1727
  text: r,
1723
1728
  muted: !0
1724
1729
  }), {
1725
- indicator: Sr(e),
1730
+ indicator: Cr(e),
1726
1731
  title: t,
1727
- blocks: zr(e)
1732
+ blocks: Br(e)
1728
1733
  };
1729
- }, Vr = (e) => e.kind === "text" || e.kind === "link" ? e.text.trim().length > 0 : e.kind !== "diff" || e.fileName.trim().length > 0, Hr = (e) => {
1734
+ }, Hr = (e) => e.kind === "text" || e.kind === "link" ? e.text.trim().length > 0 : e.kind !== "diff" || e.fileName.trim().length > 0, Ur = (e) => {
1730
1735
  switch (e.type) {
1731
1736
  case "comment":
1732
1737
  case "code":
@@ -1739,38 +1744,38 @@ var Sn = {
1739
1744
  case "input":
1740
1745
  case "component": return !0;
1741
1746
  }
1742
- }, Ur = (e) => {
1743
- let t = e.title.some(Vr), n = (e.blocks ?? []).some(Hr);
1747
+ }, Wr = (e) => {
1748
+ let t = e.title.some(Hr), n = (e.blocks ?? []).some(Ur);
1744
1749
  return t || n;
1745
- }, Wr = (e) => e ? {
1746
- ..._r(),
1750
+ }, Gr = (e) => e ? {
1751
+ ...vr(),
1747
1752
  ...e
1748
- } : _r(), Gr = (e, t) => {
1753
+ } : vr(), Kr = (e, t) => {
1749
1754
  let n = e.tool ?? "tool";
1750
- for (let e of Jt(n)) {
1755
+ for (let e of Yt(n)) {
1751
1756
  let n = t[e];
1752
1757
  if (n) return n;
1753
1758
  }
1754
- }, Kr = (e, t, n) => {
1755
- let r = Gr(e, t);
1759
+ }, qr = (e, t, n) => {
1760
+ let r = Kr(e, t);
1756
1761
  if (r) {
1757
1762
  let t = r(e, n);
1758
1763
  if (t) return t;
1759
1764
  }
1760
- return Br(e);
1761
- }, qr = (e, t) => {
1762
- let n = Wr(t?.toolRenderers);
1763
- return { items: e.map((e) => Kr(e, n, t)).filter(Ur) };
1764
- }, Jr = ee(() => import("./diff-editor-CGpeyoCE.js").then((e) => e.n).then((e) => ({ default: e.DiffEditor }))), Yr = (e) => {
1765
+ return Vr(e);
1766
+ }, Jr = (e, t) => {
1767
+ let n = Gr(t?.toolRenderers);
1768
+ return { items: e.map((e) => qr(e, n, t)).filter(Wr) };
1769
+ }, Yr = G(() => import("./diff-editor-CGpeyoCE.js").then((e) => e.n).then((e) => ({ default: e.DiffEditor }))), Xr = (e) => {
1765
1770
  let t = B(2), n;
1766
- return t[0] === e ? n = t[1] : (n = /* @__PURE__ */ H(G, {
1771
+ return t[0] === e ? n = t[1] : (n = /* @__PURE__ */ H(W, {
1767
1772
  fallback: null,
1768
- children: /* @__PURE__ */ H(Jr, { ...e })
1773
+ children: /* @__PURE__ */ H(Yr, { ...e })
1769
1774
  }), t[0] = e, t[1] = n), n;
1770
- }, Xr = (e, t, n, r = !1) => {
1775
+ }, Zr = (e, t, n, r = !1) => {
1771
1776
  r && e.stopPropagation(), t.href || e.preventDefault(), t.filePath && n?.(t.filePath);
1772
1777
  };
1773
- function Zr(e) {
1778
+ function Qr(e) {
1774
1779
  let t = B(6), { seg: n } = e, r;
1775
1780
  t[0] !== n.alt || t[1] !== n.src ? (r = /* @__PURE__ */ H(m.Image, {
1776
1781
  src: n.src,
@@ -1788,7 +1793,7 @@ function Zr(e) {
1788
1793
  children: [r, i]
1789
1794
  }), t[4] = r, t[5] = a), a;
1790
1795
  }
1791
- function Qr(e) {
1796
+ function $r(e) {
1792
1797
  let t = B(9), { seg: n, onOpenFile: r } = e, i = n.additions ?? 0, a = n.deletions ?? 0, o;
1793
1798
  t[0] !== r || t[1] !== n.fileName || t[2] !== n.filePath ? (o = () => {
1794
1799
  let e = n.filePath ?? n.fileName;
@@ -1802,9 +1807,9 @@ function Qr(e) {
1802
1807
  onClickFileLink: o
1803
1808
  }), t[4] = n.fileName, t[5] = i, t[6] = a, t[7] = o, t[8] = s) : s = t[8], s;
1804
1809
  }
1805
- function $r(e) {
1810
+ function ei(e) {
1806
1811
  let t = B(13), { seg: n, onOpenFile: r } = e, i = n.bold ? "medium" : void 0, a = !!(n.href || n.filePath), o = n.href ?? "#", s = (n.muted, "fg.muted"), c = a ? "pointer" : "default", l;
1807
- t[0] !== r || t[1] !== n ? (l = (e) => Xr(e, n, r, !0), t[0] = r, t[1] = n, t[2] = l) : l = t[2];
1812
+ t[0] !== r || t[1] !== n ? (l = (e) => Zr(e, n, r, !0), t[0] = r, t[1] = n, t[2] = l) : l = t[2];
1808
1813
  let u = n.muted ? "fg.muted" : "fg.blue-dark", d;
1809
1814
  t[3] === u ? d = t[4] : (d = {
1810
1815
  textDecoration: "underline",
@@ -1822,9 +1827,9 @@ function $r(e) {
1822
1827
  children: n.text
1823
1828
  }), t[5] = i, t[6] = n.text, t[7] = o, t[8] = s, t[9] = c, t[10] = l, t[11] = d, t[12] = f) : f = t[12], f;
1824
1829
  }
1825
- function ei(e) {
1830
+ function ti(e) {
1826
1831
  let t = B(12), { seg: n, onOpenFile: r } = e, i = n.bold ? "medium" : void 0, a = n.href ?? "#", o = n.muted ? "fg.muted" : "accent.primary", s;
1827
- t[0] !== r || t[1] !== n ? (s = (e) => Xr(e, n, r), t[0] = r, t[1] = n, t[2] = s) : s = t[2];
1832
+ t[0] !== r || t[1] !== n ? (s = (e) => Zr(e, n, r), t[0] = r, t[1] = n, t[2] = s) : s = t[2];
1828
1833
  let c = n.muted ? "fg.muted" : "accent.primary", l;
1829
1834
  t[3] === c ? l = t[4] : (l = {
1830
1835
  color: c,
@@ -1841,7 +1846,7 @@ function ei(e) {
1841
1846
  children: n.text
1842
1847
  }), t[5] = i, t[6] = n.text, t[7] = a, t[8] = o, t[9] = s, t[10] = l, t[11] = u) : u = t[11], u;
1843
1848
  }
1844
- function ti(e) {
1849
+ function ni(e) {
1845
1850
  let t = B(14), { seg: n, isClickable: i } = e, a = n.bold ? "medium" : void 0, o = n.monospace ? "mono/XS" : void 0, s = n.truncate ? "0" : void 0, c = n.truncate ? "hidden" : void 0, l = n.truncate ? "ellipsis" : void 0, u = n.truncate ? "nowrap" : void 0, d = i && !n.muted ? "fg" : "fg.muted", f;
1846
1851
  t[0] === d ? f = t[1] : (f = { color: d }, t[0] = d, t[1] = f);
1847
1852
  let p;
@@ -1864,33 +1869,33 @@ function ti(e) {
1864
1869
  children: m
1865
1870
  }), t[11] = n.text, t[12] = m, t[13] = h) : h = t[13], h;
1866
1871
  }
1867
- function ni(e) {
1872
+ function ri(e) {
1868
1873
  let t = B(11), { seg: n, isClickable: r, onOpenFile: i } = e;
1869
1874
  switch (n.kind) {
1870
1875
  case "avatar": {
1871
1876
  let e;
1872
- return t[0] === n ? e = t[1] : (e = /* @__PURE__ */ H(Zr, { seg: n }), t[0] = n, t[1] = e), e;
1877
+ return t[0] === n ? e = t[1] : (e = /* @__PURE__ */ H(Qr, { seg: n }), t[0] = n, t[1] = e), e;
1873
1878
  }
1874
1879
  case "diff": {
1875
1880
  let e;
1876
- return t[2] !== i || t[3] !== n ? (e = /* @__PURE__ */ H(Qr, {
1881
+ return t[2] !== i || t[3] !== n ? (e = /* @__PURE__ */ H($r, {
1877
1882
  seg: n,
1878
1883
  onOpenFile: i
1879
1884
  }), t[2] = i, t[3] = n, t[4] = e) : e = t[4], e;
1880
1885
  }
1881
1886
  case "link": {
1882
1887
  let e;
1883
- return t[5] !== i || t[6] !== n ? (e = n.variant === "bubble" ? /* @__PURE__ */ H($r, {
1888
+ return t[5] !== i || t[6] !== n ? (e = n.variant === "bubble" ? /* @__PURE__ */ H(ei, {
1884
1889
  seg: n,
1885
1890
  onOpenFile: i
1886
- }) : /* @__PURE__ */ H(ei, {
1891
+ }) : /* @__PURE__ */ H(ti, {
1887
1892
  seg: n,
1888
1893
  onOpenFile: i
1889
1894
  }), t[5] = i, t[6] = n, t[7] = e) : e = t[7], e;
1890
1895
  }
1891
1896
  case "text": {
1892
1897
  let e;
1893
- return t[8] !== r || t[9] !== n ? (e = /* @__PURE__ */ H(ti, {
1898
+ return t[8] !== r || t[9] !== n ? (e = /* @__PURE__ */ H(ni, {
1894
1899
  seg: n,
1895
1900
  isClickable: r
1896
1901
  }), t[8] = r, t[9] = n, t[10] = e) : e = t[10], e;
@@ -1900,15 +1905,15 @@ function ni(e) {
1900
1905
  }
1901
1906
  //#endregion
1902
1907
  //#region src/components/chat-ui/components/timeline.tsx
1903
- var ri = F;
1904
- function ii(e) {
1908
+ var ii = F;
1909
+ function ai(e) {
1905
1910
  let t = B(10), { ind: n } = e;
1906
1911
  if (!n || n.type === "none") return null;
1907
1912
  if (n.type === "icon") {
1908
1913
  let e;
1909
- t[0] === n.icon ? e = t[1] : (e = $t(n.icon), t[0] = n.icon, t[1] = e);
1914
+ t[0] === n.icon ? e = t[1] : (e = en(n.icon), t[0] = n.icon, t[1] = e);
1910
1915
  let r = e, i;
1911
- return t[2] === r ? i = t[3] : (i = /* @__PURE__ */ H(ri.Indicator, {
1916
+ return t[2] === r ? i = t[3] : (i = /* @__PURE__ */ H(ii.Indicator, {
1912
1917
  outline: "none",
1913
1918
  border: "none",
1914
1919
  background: "bg",
@@ -1934,12 +1939,12 @@ function ii(e) {
1934
1939
  color: "fg.muted"
1935
1940
  }), t[7] = i) : i = t[7];
1936
1941
  let a;
1937
- return t[8] === r ? a = t[9] : (a = /* @__PURE__ */ H(ri.Indicator, { children: /* @__PURE__ */ U(m.Root, {
1942
+ return t[8] === r ? a = t[9] : (a = /* @__PURE__ */ H(ii.Indicator, { children: /* @__PURE__ */ U(m.Root, {
1938
1943
  boxSize: "full",
1939
1944
  children: [r, i]
1940
1945
  }) }), t[8] = r, t[9] = a), a;
1941
1946
  }
1942
- function ai(e) {
1947
+ function oi(e) {
1943
1948
  let t = B(5), { code: n, language: r } = e, a = r ? `${r} code block` : "code block", o;
1944
1949
  t[0] === n ? o = t[1] : (o = /* @__PURE__ */ H(g, {
1945
1950
  as: "code",
@@ -1964,7 +1969,7 @@ function ai(e) {
1964
1969
  })
1965
1970
  }), t[2] = a, t[3] = o, t[4] = s) : s = t[4], s;
1966
1971
  }
1967
- function oi(e) {
1972
+ function si(e) {
1968
1973
  let t = B(38), { b: n, onOpenFile: r } = e;
1969
1974
  switch (n.type) {
1970
1975
  case "comment": {
@@ -1982,7 +1987,7 @@ function oi(e) {
1982
1987
  padding: "0",
1983
1988
  children: /* @__PURE__ */ H(v.Body, {
1984
1989
  padding: "0",
1985
- children: /* @__PURE__ */ H(ai, {
1990
+ children: /* @__PURE__ */ H(oi, {
1986
1991
  language: n.language,
1987
1992
  code: n.code
1988
1993
  })
@@ -2000,7 +2005,7 @@ function oi(e) {
2000
2005
  height: "240px",
2001
2006
  minW: "320px",
2002
2007
  overflow: "hidden",
2003
- children: /* @__PURE__ */ H(Yr, {
2008
+ children: /* @__PURE__ */ H(Xr, {
2004
2009
  original: n.original,
2005
2010
  modified: n.modified,
2006
2011
  language: n.language,
@@ -2026,15 +2031,15 @@ function oi(e) {
2026
2031
  }
2027
2032
  case "todo-list": {
2028
2033
  let e;
2029
- return t[17] === n.items ? e = t[18] : (e = /* @__PURE__ */ H(et, { items: n.items }), t[17] = n.items, t[18] = e), e;
2034
+ return t[17] === n.items ? e = t[18] : (e = /* @__PURE__ */ H(tt, { items: n.items }), t[17] = n.items, t[18] = e), e;
2030
2035
  }
2031
2036
  case "question-form": {
2032
2037
  let e;
2033
- return t[19] === n.questions ? e = t[20] : (e = /* @__PURE__ */ H(tt, { questions: n.questions }), t[19] = n.questions, t[20] = e), e;
2038
+ return t[19] === n.questions ? e = t[20] : (e = /* @__PURE__ */ H(nt, { questions: n.questions }), t[19] = n.questions, t[20] = e), e;
2034
2039
  }
2035
2040
  case "references": {
2036
2041
  let e;
2037
- t[21] === n.references ? e = t[22] : (e = n.references.map(si), t[21] = n.references, t[22] = e);
2042
+ t[21] === n.references ? e = t[22] : (e = n.references.map(ci), t[21] = n.references, t[22] = e);
2038
2043
  let r;
2039
2044
  return t[23] === e ? r = t[24] : (r = /* @__PURE__ */ H(M, {
2040
2045
  mt: "xs",
@@ -2083,16 +2088,16 @@ function oi(e) {
2083
2088
  }
2084
2089
  }
2085
2090
  }
2086
- function si(e) {
2091
+ function ci(e) {
2087
2092
  return /* @__PURE__ */ H(n, { fileName: e }, e);
2088
2093
  }
2089
- function ci(e) {
2094
+ function li(e) {
2090
2095
  let t = B(23), { item: n, itemKey: r, isOpen: i, canExpand: a, hasBlocks: o, onToggle: s, onOpenFile: c } = e, l;
2091
- t[0] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ H(ri.Separator, {}), t[0] = l) : l = t[0];
2096
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ H(ii.Separator, {}), t[0] = l) : l = t[0];
2092
2097
  let u;
2093
- t[1] === n.indicator ? u = t[2] : (u = /* @__PURE__ */ U(ri.Connector, { children: [l, /* @__PURE__ */ H(ii, { ind: n.indicator })] }), t[1] = n.indicator, t[2] = u);
2098
+ t[1] === n.indicator ? u = t[2] : (u = /* @__PURE__ */ U(ii.Connector, { children: [l, /* @__PURE__ */ H(ai, { ind: n.indicator })] }), t[1] = n.indicator, t[2] = u);
2094
2099
  let d = i ? "auto" : "20px", f;
2095
- t[3] !== a || t[4] !== i || t[5] !== n.title || t[6] !== r || t[7] !== c || t[8] !== s ? (f = n.title.length > 0 && /* @__PURE__ */ H(ri.Title, {
2100
+ t[3] !== a || t[4] !== i || t[5] !== n.title || t[6] !== r || t[7] !== c || t[8] !== s ? (f = n.title.length > 0 && /* @__PURE__ */ H(ii.Title, {
2096
2101
  className: "group",
2097
2102
  fontWeight: "normal",
2098
2103
  display: "flex",
@@ -2117,7 +2122,7 @@ function ci(e) {
2117
2122
  minW: "0",
2118
2123
  flex: "1",
2119
2124
  overflow: "hidden",
2120
- children: n.title.map((e, t) => /* @__PURE__ */ H(ni, {
2125
+ children: n.title.map((e, t) => /* @__PURE__ */ H(ri, {
2121
2126
  seg: e,
2122
2127
  isClickable: a,
2123
2128
  onOpenFile: c
@@ -2130,7 +2135,7 @@ function ci(e) {
2130
2135
  color: "transparent",
2131
2136
  flexShrink: "0",
2132
2137
  _groupHover: { color: "fg" },
2133
- children: /* @__PURE__ */ H(re, { size: 12 })
2138
+ children: /* @__PURE__ */ H(ie, { size: 12 })
2134
2139
  }) : null]
2135
2140
  })
2136
2141
  }), t[3] = a, t[4] = i, t[5] = n.title, t[6] = r, t[7] = c, t[8] = s, t[9] = f) : f = t[9];
@@ -2144,27 +2149,27 @@ function ci(e) {
2144
2149
  opacity: 1,
2145
2150
  transform: "translateY(0)",
2146
2151
  transition: "opacity 200ms ease, transform 200ms ease",
2147
- children: n.blocks.map((e, t) => /* @__PURE__ */ H(g, { children: /* @__PURE__ */ H(oi, {
2152
+ children: n.blocks.map((e, t) => /* @__PURE__ */ H(g, { children: /* @__PURE__ */ H(si, {
2148
2153
  b: e,
2149
2154
  onOpenFile: c
2150
2155
  }) }, t))
2151
2156
  }) : null
2152
2157
  }) : null, t[10] = o, t[11] = i, t[12] = n.blocks, t[13] = c, t[14] = p) : p = t[14];
2153
2158
  let m;
2154
- t[15] !== d || t[16] !== f || t[17] !== p ? (m = /* @__PURE__ */ U(ri.Content, {
2159
+ t[15] !== d || t[16] !== f || t[17] !== p ? (m = /* @__PURE__ */ U(ii.Content, {
2155
2160
  h: d,
2156
2161
  children: [f, p]
2157
2162
  }), t[15] = d, t[16] = f, t[17] = p, t[18] = m) : m = t[18];
2158
2163
  let h;
2159
- return t[19] !== r || t[20] !== u || t[21] !== m ? (h = /* @__PURE__ */ U(ri.Item, {
2164
+ return t[19] !== r || t[20] !== u || t[21] !== m ? (h = /* @__PURE__ */ U(ii.Item, {
2160
2165
  gap: "xs",
2161
2166
  children: [u, m]
2162
2167
  }, r), t[19] = r, t[20] = u, t[21] = m, t[22] = h) : h = t[22], h;
2163
2168
  }
2164
- function li(e) {
2169
+ function ui(e) {
2165
2170
  let t = B(11), { data: n, onOpenFile: r } = e, i;
2166
2171
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (i = {}, t[0] = i) : i = t[0];
2167
- let [a, o] = J(i), s = ui, c;
2172
+ let [a, o] = J(i), s = di, c;
2168
2173
  t[1] === Symbol.for("react.memo_cache_sentinel") ? (c = (e) => {
2169
2174
  o((t) => ({
2170
2175
  ...t,
@@ -2176,7 +2181,7 @@ function li(e) {
2176
2181
  let e;
2177
2182
  t[6] !== a || t[7] !== r ? (e = (e, t) => {
2178
2183
  let n = s(e, t), i = (e.blocks?.length ?? 0) > 0, o = (e.expandable ?? !0) && i, c = o ? a[n] ?? !1 : i;
2179
- return /* @__PURE__ */ H(ci, {
2184
+ return /* @__PURE__ */ H(li, {
2180
2185
  item: e,
2181
2186
  itemKey: n,
2182
2187
  isOpen: c,
@@ -2188,59 +2193,59 @@ function li(e) {
2188
2193
  }, t[6] = a, t[7] = r, t[8] = e) : e = t[8], u = n.items.map(e), t[2] = n.items, t[3] = a, t[4] = r, t[5] = u;
2189
2194
  } else u = t[5];
2190
2195
  let d;
2191
- return t[9] === u ? d = t[10] : (d = /* @__PURE__ */ H(ri.Root, {
2196
+ return t[9] === u ? d = t[10] : (d = /* @__PURE__ */ H(ii.Root, {
2192
2197
  variant: "tool",
2193
2198
  children: u
2194
2199
  }), t[9] = u, t[10] = d), d;
2195
2200
  }
2196
- function ui(e, t) {
2201
+ function di(e, t) {
2197
2202
  return e.id ? `id:${e.id}` : `idx:${t}`;
2198
2203
  }
2199
2204
  //#endregion
2200
2205
  //#region src/components/chat-ui/components/tool-invocation-timeline.tsx
2201
- var di = (e) => qt(e.tool ?? "").replace(/_/g, "") === "question", fi = (e) => {
2206
+ var fi = (e) => Jt(e.tool ?? "").replace(/_/g, "") === "question", pi = (e) => {
2202
2207
  let t = e.state?.output;
2203
2208
  return typeof t == "string" ? t.trim().length > 0 : Array.isArray(t) ? t.length > 0 : t && typeof t == "object" ? Object.keys(t).length > 0 : t != null;
2204
2209
  };
2205
- function pi(e) {
2210
+ function mi(e) {
2206
2211
  let t = B(8), { invocations: n, labeledBlocks: r, hideQuestionForms: i, onOpenFile: a } = e, o = i !== void 0 && i, s, c;
2207
2212
  if (t[0] !== o || t[1] !== n || t[2] !== r) {
2208
2213
  c = Symbol.for("react.early_return_sentinel");
2209
2214
  bb0: {
2210
- let e = o ? n.filter(mi) : n;
2215
+ let e = o ? n.filter(hi) : n;
2211
2216
  if (e.length === 0) {
2212
2217
  c = null;
2213
2218
  break bb0;
2214
2219
  }
2215
- s = qr(e, { labeledBlocks: r });
2220
+ s = Jr(e, { labeledBlocks: r });
2216
2221
  }
2217
2222
  t[0] = o, t[1] = n, t[2] = r, t[3] = s, t[4] = c;
2218
2223
  } else s = t[3], c = t[4];
2219
2224
  if (c !== Symbol.for("react.early_return_sentinel")) return c;
2220
2225
  let l = s, u;
2221
- return t[5] !== l || t[6] !== a ? (u = /* @__PURE__ */ H(li, {
2226
+ return t[5] !== l || t[6] !== a ? (u = /* @__PURE__ */ H(ui, {
2222
2227
  data: l,
2223
2228
  onOpenFile: a
2224
2229
  }), t[5] = l, t[6] = a, t[7] = u) : u = t[7], u;
2225
2230
  }
2226
- function mi(e) {
2227
- return !di(e) || fi(e);
2231
+ function hi(e) {
2232
+ return !fi(e) || pi(e);
2228
2233
  }
2229
2234
  //#endregion
2230
2235
  //#region src/components/chat-ui/components/message-parts-renderer.tsx
2231
- var hi = (e) => e.type === "tool", gi = (e) => e.filename ?? e.url.split("/").pop() ?? "attachment", _i = /\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i, vi = (e) => e.mediaType?.startsWith("image/") || _i.test(gi(e)), yi = (e) => vi(e) ? /* @__PURE__ */ H(w, {
2236
+ var gi = (e) => e.type === "tool", _i = (e) => e.filename ?? e.url.split("/").pop() ?? "attachment", vi = /\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i, yi = (e) => e.mediaType?.startsWith("image/") || vi.test(_i(e)), bi = (e) => yi(e) ? /* @__PURE__ */ H(w, {
2232
2237
  src: e.url,
2233
- alt: `${gi(e)} preview thumbnail`,
2238
+ alt: `${_i(e)} preview thumbnail`,
2234
2239
  boxSize: "18px",
2235
2240
  borderRadius: "xs",
2236
2241
  objectFit: "cover"
2237
- }) : void 0, bi = (e, t) => {
2242
+ }) : void 0, xi = (e, t) => {
2238
2243
  if (t) {
2239
2244
  t(e.url);
2240
2245
  return;
2241
2246
  }
2242
2247
  typeof window < "u" && window.open(e.url, "_blank", "noopener,noreferrer");
2243
- }, xi = (e) => {
2248
+ }, Si = (e) => {
2244
2249
  if (e.message && e.message.trim().length > 0) return e.message;
2245
2250
  let { errorType: t } = e;
2246
2251
  switch (t) {
@@ -2249,17 +2254,17 @@ var hi = (e) => e.type === "tool", gi = (e) => e.filename ?? e.url.split("/").po
2249
2254
  case "permission": return "Permission denied.";
2250
2255
  default: return "An error occurred.";
2251
2256
  }
2252
- }, Si = {
2257
+ }, Ci = {
2253
2258
  info: "blue",
2254
2259
  warning: "orange",
2255
2260
  error: "red",
2256
2261
  success: "green",
2257
2262
  loading: "blue"
2258
- }, Ci = (e, t) => {
2263
+ }, wi = (e, t) => {
2259
2264
  let n = [], r = t;
2260
2265
  for (; r < e.length;) {
2261
2266
  let t = e[r];
2262
- if (!hi(t)) break;
2267
+ if (!gi(t)) break;
2263
2268
  n.push(t), r += 1;
2264
2269
  }
2265
2270
  return {
@@ -2267,8 +2272,8 @@ var hi = (e) => e.type === "tool", gi = (e) => e.filename ?? e.url.split("/").po
2267
2272
  nextIndex: r - 1
2268
2273
  };
2269
2274
  };
2270
- function wi(e) {
2271
- let r = B(8), { message: i, hideQuestionForms: a, onOpenFile: o, toolInvocationTimeline: s } = e, c = a !== void 0 && a, l = s ?? pi, d;
2275
+ function Ti(e) {
2276
+ let r = B(8), { message: i, hideQuestionForms: a, onOpenFile: o, toolInvocationTimeline: s } = e, c = a !== void 0 && a, l = s ?? mi, d;
2272
2277
  r[0] === i.parts ? d = r[1] : (d = i.parts ?? [], r[0] = i.parts, r[1] = d);
2273
2278
  let f = d, p;
2274
2279
  if (r[2] !== l || r[3] !== c || r[4] !== i.id || r[5] !== o || r[6] !== f) {
@@ -2277,7 +2282,7 @@ function wi(e) {
2277
2282
  let a = f[r], s = `${i.id}-${r}`;
2278
2283
  bb0: switch (a.type) {
2279
2284
  case "text":
2280
- e.push(/* @__PURE__ */ H("div", { children: /* @__PURE__ */ H(Kt, { children: a.text }) }, s));
2285
+ e.push(/* @__PURE__ */ H("div", { children: /* @__PURE__ */ H(qt, { children: a.text }) }, s));
2281
2286
  break bb0;
2282
2287
  case "reasoning":
2283
2288
  e.push(/* @__PURE__ */ H(g, {
@@ -2294,7 +2299,7 @@ function wi(e) {
2294
2299
  }, s));
2295
2300
  break bb0;
2296
2301
  case "tool": {
2297
- let { invocations: t, nextIndex: n } = Ci(f, r);
2302
+ let { invocations: t, nextIndex: n } = wi(f, r);
2298
2303
  r = n, e.push(/* @__PURE__ */ H(g, {
2299
2304
  width: "full",
2300
2305
  children: /* @__PURE__ */ H(l, {
@@ -2310,11 +2315,11 @@ function wi(e) {
2310
2315
  e.push(/* @__PURE__ */ H(g, {
2311
2316
  width: "fit-content",
2312
2317
  children: /* @__PURE__ */ H(n, {
2313
- fileName: gi(a),
2318
+ fileName: _i(a),
2314
2319
  size: "sm",
2315
2320
  tone: "neutral",
2316
- icon: yi(a),
2317
- onSelect: () => bi(a, o)
2321
+ icon: bi(a),
2322
+ onSelect: () => xi(a, o)
2318
2323
  })
2319
2324
  }, s));
2320
2325
  break bb0;
@@ -2326,7 +2331,7 @@ function wi(e) {
2326
2331
  borderRadius: "xs",
2327
2332
  status: "error",
2328
2333
  colorPalette: "red",
2329
- title: xi(a),
2334
+ title: Si(a),
2330
2335
  size: "sm"
2331
2336
  })
2332
2337
  }, s));
@@ -2338,7 +2343,7 @@ function wi(e) {
2338
2343
  children: /* @__PURE__ */ H(t, {
2339
2344
  borderRadius: "xs",
2340
2345
  status: a.status === "loading" ? "info" : a.status,
2341
- colorPalette: Si[a.status],
2346
+ colorPalette: Ci[a.status],
2342
2347
  title: a.title,
2343
2348
  icon: a.status === "loading" ? /* @__PURE__ */ H(j, { size: "sm" }) : void 0,
2344
2349
  size: "sm",
@@ -2355,17 +2360,17 @@ function wi(e) {
2355
2360
  }
2356
2361
  //#endregion
2357
2362
  //#region src/components/chat-ui/components/message-types.ts
2358
- var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "assistant", Ei = (e) => e.text.trim().length > 0, Di = (e) => e.title.trim().length > 0 || !!e.message?.trim(), Oi = (e) => {
2363
+ var Ei = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "assistant", Di = (e) => e.text.trim().length > 0, Oi = (e) => e.title.trim().length > 0 || !!e.message?.trim(), ki = (e) => {
2359
2364
  switch (e.type) {
2360
2365
  case "text":
2361
- case "reasoning": return Ei(e);
2366
+ case "reasoning": return Di(e);
2362
2367
  case "tool":
2363
2368
  case "file":
2364
2369
  case "error": return !0;
2365
- case "alert": return Di(e);
2370
+ case "alert": return Oi(e);
2366
2371
  default: return !1;
2367
2372
  }
2368
- }, ki = (e) => e.type === "reasoning" || e.type === "tool", Ai = (e) => e.role === "user" || e.parts.length === 0 ? !1 : e.parts.every(ki), ji = (e) => {
2373
+ }, Ai = (e) => e.type === "reasoning" || e.type === "tool", ji = (e) => e.role === "user" || e.parts.length === 0 ? !1 : e.parts.every(Ai), Mi = (e) => {
2369
2374
  if (e.length === 0) return null;
2370
2375
  let [t, ...n] = e;
2371
2376
  return t ? {
@@ -2375,12 +2380,12 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2375
2380
  modelId: n.at(-1)?.modelId ?? t.modelId,
2376
2381
  providerId: n.at(-1)?.providerId ?? t.providerId
2377
2382
  } : null;
2378
- }, Mi = (e, t = {}) => {
2383
+ }, Ni = (e, t = {}) => {
2379
2384
  let n = [], r = [], i = () => {
2380
2385
  r = [];
2381
2386
  };
2382
2387
  for (let t of e) {
2383
- let e = (t.parts ?? []).filter(Oi);
2388
+ let e = (t.parts ?? []).filter(ki);
2384
2389
  if (e.length === 0) continue;
2385
2390
  let a = {
2386
2391
  ...t,
@@ -2390,7 +2395,7 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2390
2395
  i(), n.push(a);
2391
2396
  continue;
2392
2397
  }
2393
- if (Ai(a)) {
2398
+ if (ji(a)) {
2394
2399
  r.push(a);
2395
2400
  continue;
2396
2401
  }
@@ -2404,14 +2409,14 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2404
2409
  n.push(a);
2405
2410
  }
2406
2411
  if (t.streaming && r.length > 0) {
2407
- let e = ji(r);
2412
+ let e = Mi(r);
2408
2413
  e && n.push(e);
2409
2414
  }
2410
2415
  return n;
2411
- }, Ni = (e) => {
2412
- let t = e.at(-1);
2413
- return t?.role === "assistant" && t.parts.some((e) => e.type === "text" && Ei(e)) ? t.id : null;
2414
2416
  }, Pi = (e) => {
2417
+ let t = e.at(-1);
2418
+ return t?.role === "assistant" && t.parts.some((e) => e.type === "text" && Di(e)) ? t.id : null;
2419
+ }, Fi = (e) => {
2415
2420
  let t = [], n = [];
2416
2421
  for (let r of e) r.role === "user" ? t.push({
2417
2422
  userMessage: r,
@@ -2421,33 +2426,33 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2421
2426
  groups: t,
2422
2427
  leadingResponses: n
2423
2428
  };
2424
- }, Fi = (e) => {
2429
+ }, Ii = (e) => {
2425
2430
  let t = B(18), { message: n, streaming: r, hideQuestionForms: i, animate: a, showAssistantActions: o } = e, s = i !== void 0 && i, c = a !== void 0 && a, l;
2426
- t[0] === n.role ? l = t[1] : (l = Ti(n.role), t[0] = n.role, t[1] = l);
2427
- let u = l, d = u === "user" || u === "assistant" && o, f = c ? Lt : void 0, p;
2428
- t[2] !== s || t[3] !== n || t[4] !== r ? (p = /* @__PURE__ */ H(wi, {
2431
+ t[0] === n.role ? l = t[1] : (l = Ei(n.role), t[0] = n.role, t[1] = l);
2432
+ let u = l, d = u === "user" || u === "assistant" && o, f = c ? Rt : void 0, p;
2433
+ t[2] !== s || t[3] !== n || t[4] !== r ? (p = /* @__PURE__ */ H(Ti, {
2429
2434
  message: n,
2430
2435
  streaming: r,
2431
2436
  hideQuestionForms: s
2432
2437
  }), t[2] = s, t[3] = n, t[4] = r, t[5] = p) : p = t[5];
2433
2438
  let m;
2434
- t[6] !== u || t[7] !== n || t[8] !== d ? (m = d ? /* @__PURE__ */ H(Wt, {
2439
+ t[6] !== u || t[7] !== n || t[8] !== d ? (m = d ? /* @__PURE__ */ H(Gt, {
2435
2440
  message: n,
2436
2441
  alwaysVisible: u === "user",
2437
2442
  copyAlwaysVisible: u !== "user"
2438
2443
  }) : null, t[6] = u, t[7] = n, t[8] = d, t[9] = m) : m = t[9];
2439
2444
  let h;
2440
- t[10] !== u || t[11] !== p || t[12] !== m ? (h = /* @__PURE__ */ U(Z.Content, {
2445
+ t[10] !== u || t[11] !== p || t[12] !== m ? (h = /* @__PURE__ */ U(Ie.Content, {
2441
2446
  from: u,
2442
2447
  children: [p, m]
2443
2448
  }), t[10] = u, t[11] = p, t[12] = m, t[13] = h) : h = t[13];
2444
2449
  let g;
2445
- return t[14] !== u || t[15] !== f || t[16] !== h ? (g = /* @__PURE__ */ H(Z.Root, {
2450
+ return t[14] !== u || t[15] !== f || t[16] !== h ? (g = /* @__PURE__ */ H(Ie.Root, {
2446
2451
  from: u,
2447
2452
  ...f,
2448
2453
  children: h
2449
2454
  }), t[14] = u, t[15] = f, t[16] = h, t[17] = g) : g = t[17], g;
2450
- }, Ii = (e) => {
2455
+ }, Li = (e) => {
2451
2456
  let t = B(7), { label: n, onClick: r, actionPanel: i } = e, a = i ? "space-between" : "flex-end", o;
2452
2457
  t[0] !== n || t[1] !== r ? (o = /* @__PURE__ */ H(_, {
2453
2458
  size: "2xs",
@@ -2474,21 +2479,21 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2474
2479
  pointerEvents: "none",
2475
2480
  children: [i, o]
2476
2481
  }), t[3] = i, t[4] = a, t[5] = o, t[6] = s) : s = t[6], s;
2477
- }, Li = "min(10vh, 4rem)", Ri = "min(70dvh, calc(100dvh - 12rem), 22rem)", zi = 1, Bi = (e) => e.parts.reduce((e, t) => t.type === "text" ? {
2482
+ }, Ri = "min(10vh, 4rem)", zi = "min(70dvh, calc(100dvh - 12rem), 22rem)", Bi = 1, Vi = (e) => e.parts.reduce((e, t) => t.type === "text" ? {
2478
2483
  lineCount: e.lineCount + t.text.split(/\r\n|\r|\n/).length,
2479
2484
  textLength: e.textLength + t.text.length
2480
2485
  } : e, {
2481
2486
  lineCount: 0,
2482
2487
  textLength: 0
2483
- }), Vi = (e) => {
2488
+ }), Hi = (e) => {
2484
2489
  if (e.role !== "user") return !1;
2485
- let { lineCount: t, textLength: n } = Bi(e);
2490
+ let { lineCount: t, textLength: n } = Vi(e);
2486
2491
  return n > 360 || t > 4;
2487
- }, Hi = (e, t) => {
2492
+ }, Ui = (e, t) => {
2488
2493
  let n = Math.max(0, e.scrollHeight - e.clientHeight);
2489
- return t === 0 || n <= zi ? !1 : t < 0 ? e.scrollTop > zi : e.scrollTop < n - zi;
2490
- }, Ui = 720, Wi = 1, Gi = 3, Ki = 20, qi = 1, Ji = 4, Yi = 8, Xi = (e, t) => {
2491
- let n = Ni(e);
2494
+ return t === 0 || n <= Bi ? !1 : t < 0 ? e.scrollTop > Bi : e.scrollTop < n - Bi;
2495
+ }, Wi = 720, Gi = 1, Ki = 3, qi = 20, Ji = 1, Yi = 4, Xi = 8, Zi = (e, t) => {
2496
+ let n = Pi(e);
2492
2497
  return [...e.map((e) => ({
2493
2498
  type: "leading-response",
2494
2499
  key: e.id,
@@ -2500,28 +2505,28 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2500
2505
  group: e,
2501
2506
  groupIndex: t
2502
2507
  }))];
2503
- }, Zi = (e, t) => {
2508
+ }, Qi = (e, t) => {
2504
2509
  if (e === 0) return 0;
2505
- let n = e * Ui + (e - 1) * Yi;
2510
+ let n = e * Wi + (e - 1) * Xi;
2506
2511
  return Math.max(n - t, 0);
2507
- }, Qi = (e) => e?.clientHeight || Wi, $i = (e, t) => Math.abs(e.scrollTop - t.scrollTop) <= qi && Math.abs(e.totalSize - t.totalSize) <= qi, ea = (e, t) => ({
2512
+ }, $i = (e) => e?.clientHeight || Gi, ea = (e, t) => Math.abs(e.scrollTop - t.scrollTop) <= Ji && Math.abs(e.totalSize - t.totalSize) <= Ji, ta = (e, t) => !!e && Math.max(e.scrollHeight, t) <= e.clientHeight, na = (e, t) => ({
2508
2513
  scrollTop: e?.scrollTop ?? 0,
2509
2514
  totalSize: t
2510
- }), ta = (e) => {
2515
+ }), ra = (e) => {
2511
2516
  let t = B(8), { itemCount: n, onReady: r, scrollRef: i, totalSize: a } = e, o = q(r), s, c;
2512
2517
  t[0] === r ? (s = t[1], c = t[2]) : (s = () => {
2513
2518
  o.current = r;
2514
2519
  }, c = [r], t[0] = r, t[1] = s, t[2] = c), K(s, c);
2515
2520
  let l, u;
2516
2521
  t[3] !== n || t[4] !== i || t[5] !== a ? (l = () => {
2517
- if (n === 0 || typeof requestAnimationFrame > "u") {
2522
+ if (n === 0 || typeof requestAnimationFrame > "u" || ta(i.current, a)) {
2518
2523
  o.current?.();
2519
2524
  return;
2520
2525
  }
2521
2526
  let e = 0, t = 0, r = 0, s = null, c = () => {
2522
2527
  t += 1;
2523
- let n = ea(i.current, a);
2524
- if (r = s && $i(n, s) ? r + 1 : 0, s = n, r >= Gi || t >= Ki) {
2528
+ let n = na(i.current, a);
2529
+ if (r = s && ea(n, s) ? r + 1 : 0, s = n, r >= Ki || t >= qi) {
2525
2530
  o.current?.();
2526
2531
  return;
2527
2532
  }
@@ -2532,97 +2537,98 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2532
2537
  n,
2533
2538
  i,
2534
2539
  a
2535
- ], t[3] = n, t[4] = i, t[5] = a, t[6] = l, t[7] = u) : (l = t[6], u = t[7]), K(l, u);
2536
- }, na = (e) => {
2537
- Hi(e.currentTarget, e.deltaY) && e.stopPropagation();
2538
- }, ra = (e, t) => {
2539
- if (e) return t ? Ri : Li;
2540
+ ], t[3] = n, t[4] = i, t[5] = a, t[6] = l, t[7] = u) : (l = t[6], u = t[7]), te(l, u);
2540
2541
  }, ia = (e) => {
2541
- if (e) return Ri;
2542
- }, aa = (e) => {
2543
- let t = B(50), { group: n, streaming: r, hideQuestionForms: i, isExpanded: a, animate: o, onToggleStickyMessage: s } = e, c, l, u;
2544
- t[0] !== n.userMessage || t[1] !== a ? (c = Vi(n.userMessage), l = c && a, u = ra(c, a), t[0] = n.userMessage, t[1] = a, t[2] = c, t[3] = l, t[4] = u) : (c = t[2], l = t[3], u = t[4]);
2542
+ Ui(e.currentTarget, e.deltaY) && e.stopPropagation();
2543
+ }, aa = (e, t) => {
2544
+ if (e) return t ? zi : Ri;
2545
+ }, oa = (e) => {
2546
+ if (e) return zi;
2547
+ }, sa = (e) => {
2548
+ let t = B(51), { group: n, streaming: r, hideQuestionForms: i, isExpanded: a, animate: o, onToggleStickyMessage: s } = e, c, l, u;
2549
+ t[0] !== n.userMessage || t[1] !== a ? (c = Hi(n.userMessage), l = c && a, u = aa(c, a), t[0] = n.userMessage, t[1] = a, t[2] = c, t[3] = l, t[4] = u) : (c = t[2], l = t[3], u = t[4]);
2545
2550
  let d = u, f;
2546
2551
  t[5] !== n.userMessage.id || t[6] !== s ? (f = () => s(n.userMessage.id), t[5] = n.userMessage.id, t[6] = s, t[7] = f) : f = t[7];
2547
2552
  let p = f, m;
2548
- t[8] === n.responses ? m = t[9] : (m = Ni(n.responses), t[8] = n.responses, t[9] = m);
2549
- let h = m, _ = o ? Lt : void 0, v = c ? "0" : void 0, y = c ? "relative" : void 0, b = c ? a ? "expanded" : "collapsed" : void 0, x;
2550
- t[10] === l ? x = t[11] : (x = ia(l), t[10] = l, t[11] = x);
2551
- let S = l ? "auto" : "visible", C = c ? "xs" : void 0, w = c ? "xs" : void 0, T = l ? "3rem" : void 0, E = l ? na : void 0, D;
2552
- t[12] !== n.userMessage || t[13] !== r ? (D = /* @__PURE__ */ H(wi, {
2553
+ t[8] === n.responses ? m = t[9] : (m = Pi(n.responses), t[8] = n.responses, t[9] = m);
2554
+ let h = m, _ = n.userMessage.delivery ?? "sent", v = o ? Rt : void 0, y = c ? "0" : void 0, b = c ? "relative" : void 0, x = c ? a ? "expanded" : "collapsed" : void 0, S;
2555
+ t[10] === l ? S = t[11] : (S = oa(l), t[10] = l, t[11] = S);
2556
+ let C = l ? "auto" : "visible", w = c ? "xs" : void 0, T = c ? "xs" : void 0, E = l ? "3rem" : void 0, D = l ? ia : void 0, O;
2557
+ t[12] !== n.userMessage || t[13] !== r ? (O = /* @__PURE__ */ H(Ti, {
2553
2558
  message: n.userMessage,
2554
2559
  streaming: r
2555
- }), t[12] = n.userMessage, t[13] = r, t[14] = D) : D = t[14];
2556
- let O;
2557
- t[15] !== w || t[16] !== T || t[17] !== E || t[18] !== D || t[19] !== b || t[20] !== x || t[21] !== S || t[22] !== C ? (O = /* @__PURE__ */ H(g, {
2558
- "data-sticky-user-message-content": b,
2560
+ }), t[12] = n.userMessage, t[13] = r, t[14] = O) : O = t[14];
2561
+ let k;
2562
+ t[15] !== w || t[16] !== T || t[17] !== E || t[18] !== D || t[19] !== O || t[20] !== x || t[21] !== S || t[22] !== C ? (k = /* @__PURE__ */ H(g, {
2563
+ "data-sticky-user-message-content": x,
2559
2564
  display: "flex",
2560
2565
  flexDirection: "column",
2561
2566
  gap: "sm",
2562
- maxH: x,
2567
+ maxH: S,
2563
2568
  minH: "0",
2564
- overflowY: S,
2565
- px: C,
2566
- py: w,
2567
- pb: T,
2568
- onWheel: E,
2569
- children: D
2570
- }), t[15] = w, t[16] = T, t[17] = E, t[18] = D, t[19] = b, t[20] = x, t[21] = S, t[22] = C, t[23] = O) : O = t[23];
2571
- let k;
2572
- t[24] !== n.userMessage || t[25] !== c || t[26] !== a || t[27] !== p ? (k = c ? /* @__PURE__ */ H(Ii, {
2569
+ overflowY: C,
2570
+ px: w,
2571
+ py: T,
2572
+ pb: E,
2573
+ onWheel: D,
2574
+ children: O
2575
+ }), t[15] = w, t[16] = T, t[17] = E, t[18] = D, t[19] = O, t[20] = x, t[21] = S, t[22] = C, t[23] = k) : k = t[23];
2576
+ let A;
2577
+ t[24] !== n.userMessage || t[25] !== c || t[26] !== a || t[27] !== p ? (A = c ? /* @__PURE__ */ H(Li, {
2573
2578
  label: a ? "Show less" : "Show more",
2574
2579
  onClick: p,
2575
- actionPanel: /* @__PURE__ */ H(Wt, {
2580
+ actionPanel: /* @__PURE__ */ H(Gt, {
2576
2581
  message: n.userMessage,
2577
2582
  alwaysVisible: !0,
2578
2583
  copyAlwaysVisible: !1
2579
2584
  })
2580
- }) : /* @__PURE__ */ H(Wt, {
2585
+ }) : /* @__PURE__ */ H(Gt, {
2581
2586
  message: n.userMessage,
2582
2587
  alwaysVisible: !0,
2583
2588
  copyAlwaysVisible: !1
2584
- }), t[24] = n.userMessage, t[25] = c, t[26] = a, t[27] = p, t[28] = k) : k = t[28];
2585
- let A;
2586
- t[29] !== d || t[30] !== O || t[31] !== k || t[32] !== v || t[33] !== y ? (A = /* @__PURE__ */ U(Z.Content, {
2589
+ }), t[24] = n.userMessage, t[25] = c, t[26] = a, t[27] = p, t[28] = A) : A = t[28];
2590
+ let j;
2591
+ t[29] !== d || t[30] !== k || t[31] !== A || t[32] !== y || t[33] !== b ? (j = /* @__PURE__ */ U(Ie.Content, {
2587
2592
  from: "user",
2588
2593
  maxH: d,
2589
2594
  overflow: "hidden",
2590
- p: v,
2591
- position: y,
2592
- children: [O, k]
2593
- }), t[29] = d, t[30] = O, t[31] = k, t[32] = v, t[33] = y, t[34] = A) : A = t[34];
2594
- let j;
2595
- t[35] !== A || t[36] !== _ ? (j = /* @__PURE__ */ H(g, {
2595
+ p: y,
2596
+ position: b,
2597
+ children: [k, A]
2598
+ }), t[29] = d, t[30] = k, t[31] = A, t[32] = y, t[33] = b, t[34] = j) : j = t[34];
2599
+ let M;
2600
+ t[35] !== j || t[36] !== _ || t[37] !== v ? (M = /* @__PURE__ */ H(g, {
2596
2601
  position: "sticky",
2597
2602
  top: "0",
2598
2603
  zIndex: 1,
2599
- children: /* @__PURE__ */ H(Z.Root, {
2604
+ children: /* @__PURE__ */ H(Ie.Root, {
2600
2605
  from: "user",
2601
- ..._,
2602
- children: A
2606
+ delivery: _,
2607
+ ...v,
2608
+ children: j
2603
2609
  })
2604
- }), t[35] = A, t[36] = _, t[37] = j) : j = t[37];
2605
- let M;
2606
- if (t[38] !== h || t[39] !== n.responses || t[40] !== i || t[41] !== r) {
2610
+ }), t[35] = j, t[36] = _, t[37] = v, t[38] = M) : M = t[38];
2611
+ let N;
2612
+ if (t[39] !== h || t[40] !== n.responses || t[41] !== i || t[42] !== r) {
2607
2613
  let e;
2608
- t[43] !== h || t[44] !== i || t[45] !== r ? (e = (e) => /* @__PURE__ */ H(g, { children: /* @__PURE__ */ H(Fi, {
2614
+ t[44] !== h || t[45] !== i || t[46] !== r ? (e = (e) => /* @__PURE__ */ H(g, { children: /* @__PURE__ */ H(Ii, {
2609
2615
  message: e,
2610
2616
  streaming: r,
2611
2617
  hideQuestionForms: i,
2612
2618
  showAssistantActions: e.id === h
2613
- }) }, e.id), t[43] = h, t[44] = i, t[45] = r, t[46] = e) : e = t[46], M = n.responses.map(e), t[38] = h, t[39] = n.responses, t[40] = i, t[41] = r, t[42] = M;
2614
- } else M = t[42];
2615
- let N;
2616
- return t[47] !== j || t[48] !== M ? (N = /* @__PURE__ */ U(g, { children: [j, M] }), t[47] = j, t[48] = M, t[49] = N) : N = t[49], N;
2617
- }, oa = (e, t) => {
2619
+ }) }, e.id), t[44] = h, t[45] = i, t[46] = r, t[47] = e) : e = t[47], N = n.responses.map(e), t[39] = h, t[40] = n.responses, t[41] = i, t[42] = r, t[43] = N;
2620
+ } else N = t[43];
2621
+ let P;
2622
+ return t[48] !== M || t[49] !== N ? (P = /* @__PURE__ */ U(g, { children: [M, N] }), t[48] = M, t[49] = N, t[50] = P) : P = t[50], P;
2623
+ }, ca = (e, t) => {
2618
2624
  let { groups: n, streaming: r, hideActiveQuestionForms: i, expandedStickyMessageIds: a, animatedItemKeys: o, onToggleStickyMessage: s } = t;
2619
- return e.type === "leading-response" ? /* @__PURE__ */ H(Fi, {
2625
+ return e.type === "leading-response" ? /* @__PURE__ */ H(Ii, {
2620
2626
  message: e.message,
2621
2627
  streaming: r,
2622
2628
  hideQuestionForms: n.length > 0 || i,
2623
2629
  animate: o.has(e.key),
2624
2630
  showAssistantActions: e.showAssistantActions
2625
- }) : /* @__PURE__ */ H(aa, {
2631
+ }) : /* @__PURE__ */ H(sa, {
2626
2632
  group: e.group,
2627
2633
  streaming: r,
2628
2634
  hideQuestionForms: e.groupIndex < n.length - 1 || i,
@@ -2630,21 +2636,21 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2630
2636
  animate: o.has(e.key),
2631
2637
  onToggleStickyMessage: s
2632
2638
  });
2633
- }, sa = (e) => {
2634
- let { leadingResponses: t, groups: n, streaming: r, hideActiveQuestionForms: i, expandedStickyMessageIds: a, onToggleStickyMessage: o, onReady: s } = e, { scrollRef: c } = Oe(), l = Xi(t, n), u = Bt(l.map((e) => e.key)), d = Qi(c.current), f = Ee({
2639
+ }, la = (e) => {
2640
+ let { leadingResponses: t, groups: n, streaming: r, hideActiveQuestionForms: i, expandedStickyMessageIds: a, onToggleStickyMessage: o, onReady: s } = e, { scrollRef: c } = Oe(), l = Zi(t, n), u = Vt(l.map((e) => e.key)), d = $i(c.current), f = Ee({
2635
2641
  count: l.length,
2636
2642
  getScrollElement: () => c.current,
2637
- estimateSize: () => Ui,
2643
+ estimateSize: () => Wi,
2638
2644
  getItemKey: (e) => l[e]?.key ?? e,
2639
- overscan: Ji,
2640
- gap: Yi,
2645
+ overscan: Yi,
2646
+ gap: Xi,
2641
2647
  initialRect: {
2642
2648
  width: 0,
2643
2649
  height: d
2644
2650
  },
2645
- initialOffset: () => Zi(l.length, d)
2651
+ initialOffset: () => Qi(l.length, d)
2646
2652
  }), p = f.getTotalSize();
2647
- return ta({
2653
+ return ra({
2648
2654
  itemCount: l.length,
2649
2655
  onReady: s,
2650
2656
  scrollRef: c,
@@ -2666,7 +2672,7 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2666
2672
  left: "0",
2667
2673
  width: "100%",
2668
2674
  style: { top: e.start },
2669
- children: oa(t, {
2675
+ children: ca(t, {
2670
2676
  groups: n,
2671
2677
  streaming: r,
2672
2678
  hideActiveQuestionForms: i,
@@ -2678,7 +2684,7 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2678
2684
  })
2679
2685
  })
2680
2686
  });
2681
- }, ca = (e = "") => JSON.stringify(c(e)), la = (e) => {
2687
+ }, ua = (e = "") => JSON.stringify(c(e)), da = (e) => {
2682
2688
  let t = B(48), { item: n, index: r, isFirst: i, isLast: a, isEditing: o, isDragTarget: s, onEdit: c, onRemove: l, onDragStart: u, onDragEnd: d, onDragOver: f, onDrop: p } = e, m = !!c, _ = !!l, v = !i || !a, y = `Drag queued follow-up ${r + 1}`, b = i ? "0" : "1px", w = s ? "border.accent-light" : "border.subtle", T = i ? "0" : "2xs", E = o ? "bg.muted" : void 0, D;
2683
2689
  t[0] !== n.id || t[1] !== f ? (D = (e) => f(e, n.id), t[0] = n.id, t[1] = f, t[2] = D) : D = t[2];
2684
2690
  let O;
@@ -2752,24 +2758,24 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2752
2758
  boxSize: "14px"
2753
2759
  })
2754
2760
  }) : null, t[28] = _, t[29] = n.id, t[30] = l, t[31] = V) : V = t[31];
2755
- let W;
2756
- t[32] !== z || t[33] !== V ? (W = /* @__PURE__ */ U(x, {
2761
+ let ee;
2762
+ t[32] !== z || t[33] !== V ? (ee = /* @__PURE__ */ U(x, {
2757
2763
  gap: "2xs",
2758
2764
  flexShrink: 0,
2759
2765
  children: [z, V]
2760
- }), t[32] = z, t[33] = V, t[34] = W) : W = t[34];
2761
- let G;
2762
- t[35] !== F || t[36] !== R || t[37] !== W ? (G = /* @__PURE__ */ U(x, {
2766
+ }), t[32] = z, t[33] = V, t[34] = ee) : ee = t[34];
2767
+ let W;
2768
+ t[35] !== F || t[36] !== R || t[37] !== ee ? (W = /* @__PURE__ */ U(x, {
2763
2769
  gap: "xs",
2764
2770
  alignItems: "flex-start",
2765
2771
  children: [
2766
2772
  F,
2767
2773
  R,
2768
- W
2774
+ ee
2769
2775
  ]
2770
- }), t[35] = F, t[36] = R, t[37] = W, t[38] = G) : G = t[38];
2771
- let ee;
2772
- return t[39] !== n.id || t[40] !== b || t[41] !== w || t[42] !== G || t[43] !== T || t[44] !== E || t[45] !== D || t[46] !== O ? (ee = /* @__PURE__ */ H(g, {
2776
+ }), t[35] = F, t[36] = R, t[37] = ee, t[38] = W) : W = t[38];
2777
+ let G;
2778
+ return t[39] !== n.id || t[40] !== b || t[41] !== w || t[42] !== W || t[43] !== T || t[44] !== E || t[45] !== D || t[46] !== O ? (G = /* @__PURE__ */ H(g, {
2773
2779
  minWidth: "0",
2774
2780
  borderTopWidth: b,
2775
2781
  borderColor: w,
@@ -2779,9 +2785,9 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2779
2785
  onDragOver: D,
2780
2786
  onDrop: O,
2781
2787
  "data-queued-follow-up-id": n.id,
2782
- children: G
2783
- }), t[39] = n.id, t[40] = b, t[41] = w, t[42] = G, t[43] = T, t[44] = E, t[45] = D, t[46] = O, t[47] = ee) : ee = t[47], ee;
2784
- }, ua = (e) => {
2788
+ children: W
2789
+ }), t[39] = n.id, t[40] = b, t[41] = w, t[42] = W, t[43] = T, t[44] = E, t[45] = D, t[46] = O, t[47] = G) : G = t[47], G;
2790
+ }, fa = (e) => {
2785
2791
  let t = B(24), { items: n, editingItemId: r, onEdit: i, onRemove: a, onMove: o } = e, [s, c] = J(null), [l, u] = J(null);
2786
2792
  if (n.length === 0) return null;
2787
2793
  let d;
@@ -2799,7 +2805,7 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2799
2805
  let m = p, h;
2800
2806
  if (t[6] !== l || t[7] !== r || t[8] !== f || t[9] !== m || t[10] !== n || t[11] !== i || t[12] !== a) {
2801
2807
  let e;
2802
- t[14] !== l || t[15] !== r || t[16] !== f || t[17] !== m || t[18] !== n.length || t[19] !== i || t[20] !== a ? (e = (e, t) => /* @__PURE__ */ H(la, {
2808
+ t[14] !== l || t[15] !== r || t[16] !== f || t[17] !== m || t[18] !== n.length || t[19] !== i || t[20] !== a ? (e = (e, t) => /* @__PURE__ */ H(da, {
2803
2809
  item: e,
2804
2810
  index: t,
2805
2811
  isFirst: t === 0,
@@ -2828,14 +2834,14 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2828
2834
  background: "bg",
2829
2835
  children: h
2830
2836
  }), t[22] = h, t[23] = g), g;
2831
- }, da = (e) => {
2837
+ }, pa = (e) => {
2832
2838
  let t = B(19), { queuedFollowUps: n, defaultValue: r, onChange: i, onSubmit: a, onUpdate: o } = e, [s, c] = J(null), [l, u] = J(""), [d, f] = J(0), p = s ? l : r, m, h;
2833
2839
  t[0] !== s || t[1] !== n ? (m = () => {
2834
2840
  s && (n.some((e) => e.id === s) || (c(null), u("")));
2835
2841
  }, h = [s, n], t[0] = s, t[1] = n, t[2] = m, t[3] = h) : (m = t[2], h = t[3]), K(m, h);
2836
2842
  let g;
2837
2843
  t[4] === Symbol.for("react.memo_cache_sentinel") ? (g = (e) => {
2838
- c(e.id), u(e.prompt), f(pa);
2844
+ c(e.id), u(e.prompt), f(ha);
2839
2845
  }, t[4] = g) : g = t[4];
2840
2846
  let _ = g, v;
2841
2847
  t[5] !== s || t[6] !== i ? (v = (e) => {
@@ -2859,22 +2865,22 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2859
2865
  isEditing: S,
2860
2866
  submit: x
2861
2867
  }, t[12] = y, t[13] = s, t[14] = d, t[15] = p, t[16] = x, t[17] = S, t[18] = C) : C = t[18], C;
2862
- }, fa = (e) => {
2863
- let t = B(46), { conversationKey: n, recentUserMessages: r, actions: i, attachedResources: a, attachmentList: o, chatInputAutoFocus: s, chatInputPlaceholder: c, chatInputQuestionPrompt: l, chatInputReferences: u, hasWorkspaceHub: d, inputDisabled: f, submitDisabled: p, onAttachFiles: m, onAttachText: h, onChatInputAddReference: g, onClearAttachments: _, onInterrupt: v, onQueuedFollowUpMove: y, onQueuedFollowUpRemove: b, onQueuedFollowUpUpdate: x, queuedComposer: S, queuedFollowUps: C, streaming: w, workspaceHub: T } = e, E = C.length > 0, D = d ? "2xs" : "xs", O = d ? "2xs" : "0", k = d ? "2xs" : void 0, A = d ? "1px" : void 0, j = d ? "border" : void 0, N = d ? "sm" : void 0, P = d ? "bg.subtle" : void 0, F = x ? S.edit : void 0, I;
2864
- t[0] !== y || t[1] !== b || t[2] !== S.editingItemId || t[3] !== C || t[4] !== F ? (I = /* @__PURE__ */ H(ua, {
2868
+ }, ma = (e) => {
2869
+ let t = B(43), { conversationKey: n, recentUserMessages: r, actions: i, attachedResources: a, attachmentList: o, chatInputAutoFocus: s, chatInputPlaceholder: c, chatInputQuestionPrompt: l, chatInputReferences: u, hasWorkspaceHub: d, inputDisabled: f, submitDisabled: p, onAttachFiles: m, onAttachText: h, onChatInputAddReference: g, onClearAttachments: _, onInterrupt: v, onQueuedFollowUpMove: y, onQueuedFollowUpRemove: b, onQueuedFollowUpUpdate: x, queuedComposer: S, queuedFollowUps: C, streaming: w, workspaceHub: T } = e, E = C.length > 0, D = d ? "2xs" : "0", O = d ? "2xs" : void 0, k = d ? "1px" : void 0, A = d ? "border" : void 0, j = d ? "xs" : void 0, N = d ? "bg.subtle" : void 0, P = x ? S.edit : void 0, F;
2870
+ t[0] !== y || t[1] !== b || t[2] !== S.editingItemId || t[3] !== C || t[4] !== P ? (F = /* @__PURE__ */ H(fa, {
2865
2871
  items: C,
2866
2872
  editingItemId: S.editingItemId,
2867
- onEdit: F,
2873
+ onEdit: P,
2868
2874
  onRemove: b,
2869
2875
  onMove: y
2870
- }), t[0] = y, t[1] = b, t[2] = S.editingItemId, t[3] = C, t[4] = F, t[5] = I) : I = t[5];
2871
- let L;
2872
- t[6] === S.inputValue ? L = t[7] : (L = ca(S.inputValue), t[6] = S.inputValue, t[7] = L);
2873
- let R = S.isEditing ? "Save queued follow-up" : void 0, z;
2874
- t[8] !== i || t[9] !== a || t[10] !== o || t[11] !== s || t[12] !== c || t[13] !== l || t[14] !== u || t[15] !== n || t[16] !== E || t[17] !== d || t[18] !== f || t[19] !== m || t[20] !== h || t[21] !== g || t[22] !== _ || t[23] !== v || t[24] !== S.change || t[25] !== S.focusSignal || t[26] !== S.submit || t[27] !== r || t[28] !== w || t[29] !== p || t[30] !== R || t[31] !== L ? (z = /* @__PURE__ */ H(Et, {
2876
+ }), t[0] = y, t[1] = b, t[2] = S.editingItemId, t[3] = C, t[4] = P, t[5] = F) : F = t[5];
2877
+ let I;
2878
+ t[6] === S.inputValue ? I = t[7] : (I = ua(S.inputValue), t[6] = S.inputValue, t[7] = I);
2879
+ let L = S.isEditing ? "Save queued follow-up" : void 0, R;
2880
+ t[8] !== i || t[9] !== a || t[10] !== o || t[11] !== s || t[12] !== c || t[13] !== l || t[14] !== u || t[15] !== n || t[16] !== E || t[17] !== d || t[18] !== f || t[19] !== m || t[20] !== h || t[21] !== g || t[22] !== _ || t[23] !== v || t[24] !== S.change || t[25] !== S.focusSignal || t[26] !== S.submit || t[27] !== r || t[28] !== w || t[29] !== p || t[30] !== I || t[31] !== L ? (R = /* @__PURE__ */ H(Dt, {
2875
2881
  recentUserMessages: r,
2876
2882
  placeholder: c,
2877
- defaultState: L,
2883
+ defaultState: I,
2878
2884
  streaming: w,
2879
2885
  onSubmit: S.submit,
2880
2886
  onInterrupt: v,
@@ -2892,42 +2898,40 @@ var Ti = (e) => e === "user" || e === "assistant" || e === "developer" ? e : "as
2892
2898
  questionPrompt: l,
2893
2899
  autoFocus: s,
2894
2900
  focusSignal: S.focusSignal,
2895
- submitTitle: R,
2901
+ submitTitle: L,
2896
2902
  references: u,
2897
2903
  onAddReference: g
2898
- }, n), t[8] = i, t[9] = a, t[10] = o, t[11] = s, t[12] = c, t[13] = l, t[14] = u, t[15] = n, t[16] = E, t[17] = d, t[18] = f, t[19] = m, t[20] = h, t[21] = g, t[22] = _, t[23] = v, t[24] = S.change, t[25] = S.focusSignal, t[26] = S.submit, t[27] = r, t[28] = w, t[29] = p, t[30] = R, t[31] = L, t[32] = z) : z = t[32];
2899
- let V;
2900
- t[33] !== O || t[34] !== z || t[35] !== k || t[36] !== A || t[37] !== j || t[38] !== N || t[39] !== P || t[40] !== I || t[41] !== T ? (V = /* @__PURE__ */ U(M, {
2901
- gap: O,
2902
- p: k,
2903
- borderWidth: A,
2904
- borderColor: j,
2905
- borderRadius: N,
2906
- bg: P,
2907
- children: [
2908
- T,
2909
- I,
2910
- z
2911
- ]
2912
- }), t[33] = O, t[34] = z, t[35] = k, t[36] = A, t[37] = j, t[38] = N, t[39] = P, t[40] = I, t[41] = T, t[42] = V) : V = t[42];
2913
- let W;
2914
- return t[43] !== D || t[44] !== V ? (W = /* @__PURE__ */ H(M, {
2915
- px: D,
2904
+ }, n), t[8] = i, t[9] = a, t[10] = o, t[11] = s, t[12] = c, t[13] = l, t[14] = u, t[15] = n, t[16] = E, t[17] = d, t[18] = f, t[19] = m, t[20] = h, t[21] = g, t[22] = _, t[23] = v, t[24] = S.change, t[25] = S.focusSignal, t[26] = S.submit, t[27] = r, t[28] = w, t[29] = p, t[30] = I, t[31] = L, t[32] = R) : R = t[32];
2905
+ let z;
2906
+ return t[33] !== D || t[34] !== O || t[35] !== R || t[36] !== k || t[37] !== A || t[38] !== j || t[39] !== N || t[40] !== F || t[41] !== T ? (z = /* @__PURE__ */ H(M, {
2907
+ p: "xs",
2916
2908
  gap: "0",
2917
- children: V
2918
- }), t[43] = D, t[44] = V, t[45] = W) : W = t[45], W;
2909
+ children: /* @__PURE__ */ U(M, {
2910
+ gap: D,
2911
+ p: O,
2912
+ borderWidth: k,
2913
+ borderColor: A,
2914
+ borderRadius: j,
2915
+ bg: N,
2916
+ children: [
2917
+ T,
2918
+ F,
2919
+ R
2920
+ ]
2921
+ })
2922
+ }), t[33] = D, t[34] = O, t[35] = R, t[36] = k, t[37] = A, t[38] = j, t[39] = N, t[40] = F, t[41] = T, t[42] = z) : z = t[42], z;
2919
2923
  };
2920
- function pa(e) {
2924
+ function ha(e) {
2921
2925
  return e + 1;
2922
2926
  }
2923
2927
  //#endregion
2924
2928
  //#region src/components/chat-ui/components/working-indicator.tsx
2925
- var ma = (e) => {
2929
+ var ga = (e) => {
2926
2930
  let t = Math.max(0, Math.floor(e));
2927
2931
  if (t < 60) return `${t}s`;
2928
2932
  let n = Math.floor(t / 60);
2929
2933
  return n < 60 ? `${n}m ${String(t % 60).padStart(2, "0")}s` : `${Math.floor(n / 60)}h ${String(n % 60).padStart(2, "0")}m`;
2930
- }, ha = (e) => {
2934
+ }, _a = (e) => {
2931
2935
  let t = B(9), { hidden: n } = e, r = n !== void 0 && n, [i, a] = J(0), o;
2932
2936
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (o = Date.now(), t[0] = o) : o = t[0];
2933
2937
  let s = q(o), c, l;
@@ -2944,7 +2948,7 @@ var ma = (e) => {
2944
2948
  color: "fg.muted"
2945
2949
  }), t[4] = u) : u = t[4];
2946
2950
  let d;
2947
- t[5] === i ? d = t[6] : (d = ma(i), t[5] = i, t[6] = d);
2951
+ t[5] === i ? d = t[6] : (d = ga(i), t[5] = i, t[6] = d);
2948
2952
  let f;
2949
2953
  return t[7] === d ? f = t[8] : (f = /* @__PURE__ */ U(x, {
2950
2954
  gap: "2xs",
@@ -2958,127 +2962,127 @@ var ma = (e) => {
2958
2962
  children: d
2959
2963
  })]
2960
2964
  }), t[7] = d, t[8] = f), f;
2961
- }, ga = (e) => {
2962
- let t = B(82), { conversationKey: n, messages: r, loading: i, streaming: o, emptyStateTitle: s, emptyStateDescription: c, emptyStateContent: l, loaderComponent: u, chatInputPlaceholder: d, chatInputDefaultValue: f, onSubmitMessage: p, onInterrupt: m, onAttachFiles: h, onAttachText: g, onChatInputChange: _, actions: v, attachedResources: y, onClearAttachments: x, attachmentList: S, approvalPrompt: C, workspaceHub: w, workspaceInitializing: T, inputDisabled: E, submitDisabled: D, chatInputQuestionPrompt: O, chatInputAutoFocus: k, queuedFollowUps: A, onQueuedFollowUpUpdate: j, onQueuedFollowUpRemove: M, onQueuedFollowUpMove: N, chatInputReferences: P, onChatInputAddReference: F } = e, I = i !== void 0 && i, L = o !== void 0 && o, R = f === void 0 ? "" : f, z = T !== void 0 && T, V = E !== void 0 && E, W = D !== void 0 && D, G = k !== void 0 && k, ee;
2963
- t[0] === A ? ee = t[1] : (ee = A === void 0 ? [] : A, t[0] = A, t[1] = ee);
2964
- let K = ee, q;
2965
- t[2] === P ? q = t[3] : (q = P === void 0 ? [] : P, t[2] = P, t[3] = q);
2966
- let te = q, Y, X, ne, re, ie;
2967
- if (t[4] !== n || t[5] !== r || t[6] !== L) {
2968
- let e = Mi(r, { streaming: L });
2969
- Y = e.length > 0, ne = n ?? e[0]?.id, X = Y ? ne ?? "active-conversation" : null, ie = e.reduce(_a, 0), re = Pi(e), t[4] = n, t[5] = r, t[6] = L, t[7] = Y, t[8] = X, t[9] = ne, t[10] = re, t[11] = ie;
2970
- } else Y = t[7], X = t[8], ne = t[9], re = t[10], ie = t[11];
2971
- let { groups: ae, leadingResponses: oe } = re, [se, ce] = J(va), [le, ue] = J(null), de = !Y && I, fe;
2972
- t[12] === Symbol.for("react.memo_cache_sentinel") ? (fe = /* @__PURE__ */ H(_e, {
2965
+ }, va = (e) => {
2966
+ let t = B(83), { conversationKey: n, messages: r, loading: i, streaming: o, emptyStateTitle: s, emptyStateDescription: c, emptyStateContent: l, loaderComponent: u, chatInputPlaceholder: d, chatInputDefaultValue: f, onSubmitMessage: p, onInterrupt: m, onAttachFiles: h, onAttachText: g, onChatInputChange: _, actions: v, attachedResources: y, onClearAttachments: x, attachmentList: S, approvalPrompt: C, conversationNotices: w, workspaceHub: T, workspaceInitializing: E, inputDisabled: D, submitDisabled: O, chatInputQuestionPrompt: k, chatInputAutoFocus: A, queuedFollowUps: j, onQueuedFollowUpUpdate: M, onQueuedFollowUpRemove: N, onQueuedFollowUpMove: P, chatInputReferences: F, onChatInputAddReference: I } = e, L = i !== void 0 && i, R = o !== void 0 && o, z = f === void 0 ? "" : f, ee = E !== void 0 && E, W = D !== void 0 && D, G = O !== void 0 && O, K = A !== void 0 && A, te;
2967
+ t[0] === j ? te = t[1] : (te = j === void 0 ? [] : j, t[0] = j, t[1] = te);
2968
+ let q = te, ne;
2969
+ t[2] === F ? ne = t[3] : (ne = F === void 0 ? [] : F, t[2] = F, t[3] = ne);
2970
+ let re = ne, Y, X, ie, Z, ae;
2971
+ if (t[4] !== n || t[5] !== r || t[6] !== R) {
2972
+ let e = Ni(r, { streaming: R });
2973
+ Y = e.length > 0, ie = n ?? e[0]?.id, X = Y ? ie ?? "active-conversation" : null, ae = e.reduce(ya, 0), Z = Fi(e), t[4] = n, t[5] = r, t[6] = R, t[7] = Y, t[8] = X, t[9] = ie, t[10] = Z, t[11] = ae;
2974
+ } else Y = t[7], X = t[8], ie = t[9], Z = t[10], ae = t[11];
2975
+ let { groups: oe, leadingResponses: se } = Z, [ce, le] = J(ba), [ue, de] = J(null), fe = !Y && L, pe;
2976
+ t[12] === Symbol.for("react.memo_cache_sentinel") ? (pe = /* @__PURE__ */ H(_e, {
2973
2977
  size: 48,
2974
2978
  strokeWidth: 1.5
2975
- }), t[12] = fe) : fe = t[12];
2976
- let pe;
2977
- t[13] !== c || t[14] !== s ? (pe = /* @__PURE__ */ H(a, {
2978
- icon: fe,
2979
+ }), t[12] = pe) : pe = t[12];
2980
+ let me;
2981
+ t[13] !== c || t[14] !== s ? (me = /* @__PURE__ */ H(a, {
2982
+ icon: pe,
2979
2983
  title: s,
2980
2984
  description: c
2981
- }), t[13] = c, t[14] = s, t[15] = pe) : pe = t[15];
2982
- let me = de ? u : l ?? pe, he = !!w, ge;
2983
- t[16] !== O || t[17] !== r ? (ge = O ?? It(r), t[16] = O, t[17] = r, t[18] = ge) : ge = t[18];
2984
- let ve = ge, ye = !!ve, be = L && Y && !z && !ve, xe = !X || le === X, Se;
2985
- t[19] !== R || t[20] !== _ || t[21] !== j || t[22] !== p || t[23] !== K ? (Se = {
2986
- queuedFollowUps: K,
2987
- defaultValue: R,
2985
+ }), t[13] = c, t[14] = s, t[15] = me) : me = t[15];
2986
+ let he = fe ? u : l ?? me, ge = !!T, ve;
2987
+ t[16] !== k || t[17] !== r ? (ve = k ?? Lt(r), t[16] = k, t[17] = r, t[18] = ve) : ve = t[18];
2988
+ let ye = ve, be = !!ye, xe = R && Y && !ee && !ye, Se = !X || ue === X, Ce;
2989
+ t[19] !== z || t[20] !== _ || t[21] !== M || t[22] !== p || t[23] !== q ? (Ce = {
2990
+ queuedFollowUps: q,
2991
+ defaultValue: z,
2988
2992
  onChange: _,
2989
2993
  onSubmit: p,
2990
- onUpdate: j
2991
- }, t[19] = R, t[20] = _, t[21] = j, t[22] = p, t[23] = K, t[24] = Se) : Se = t[24];
2992
- let Ce = da(Se), we;
2993
- t[25] === Symbol.for("react.memo_cache_sentinel") ? (we = (e) => {
2994
- ce((t) => {
2994
+ onUpdate: M
2995
+ }, t[19] = z, t[20] = _, t[21] = M, t[22] = p, t[23] = q, t[24] = Ce) : Ce = t[24];
2996
+ let we = pa(Ce), Te;
2997
+ t[25] === Symbol.for("react.memo_cache_sentinel") ? (Te = (e) => {
2998
+ le((t) => {
2995
2999
  let n = new Set(t);
2996
3000
  return n.has(e) ? n.delete(e) : n.add(e), n;
2997
3001
  });
2998
- }, t[25] = we) : we = t[25];
2999
- let Te = we, Ee = ne ?? null, De;
3000
- t[26] !== Ee || t[27] !== ie ? (De = /* @__PURE__ */ H(We, {
3001
- conversationKey: Ee,
3002
- userMessageCount: ie
3003
- }), t[26] = Ee, t[27] = ie, t[28] = De) : De = t[28];
3004
- let Oe = xe ? "visible" : "hidden", ke;
3005
- t[29] !== me || t[30] !== se || t[31] !== ae || t[32] !== Y || t[33] !== ye || t[34] !== oe || t[35] !== X || t[36] !== L ? (ke = Y ? /* @__PURE__ */ H(sa, {
3006
- leadingResponses: oe,
3007
- groups: ae,
3008
- streaming: L,
3009
- hideActiveQuestionForms: ye,
3010
- expandedStickyMessageIds: se,
3011
- onToggleStickyMessage: Te,
3012
- onReady: () => ue(X)
3013
- }, X) : me, t[29] = me, t[30] = se, t[31] = ae, t[32] = Y, t[33] = ye, t[34] = oe, t[35] = X, t[36] = L, t[37] = ke) : ke = t[37];
3014
- let Ae;
3015
- t[38] !== Oe || t[39] !== ke ? (Ae = /* @__PURE__ */ H(Me.Viewport, {
3016
- visibility: Oe,
3017
- children: ke
3018
- }), t[38] = Oe, t[39] = ke, t[40] = Ae) : Ae = t[40];
3002
+ }, t[25] = Te) : Te = t[25];
3003
+ let Ee = Te, De = ie ?? null, Oe;
3004
+ t[26] !== De || t[27] !== ae ? (Oe = /* @__PURE__ */ H(Ge, {
3005
+ conversationKey: De,
3006
+ userMessageCount: ae
3007
+ }), t[26] = De, t[27] = ae, t[28] = Oe) : Oe = t[28];
3008
+ let ke = Se ? "visible" : "hidden", Ae;
3009
+ t[29] !== w || t[30] !== he || t[31] !== ce || t[32] !== oe || t[33] !== Y || t[34] !== be || t[35] !== se || t[36] !== X || t[37] !== R ? (Ae = Y ? /* @__PURE__ */ U(V, { children: [/* @__PURE__ */ H(la, {
3010
+ leadingResponses: se,
3011
+ groups: oe,
3012
+ streaming: R,
3013
+ hideActiveQuestionForms: be,
3014
+ expandedStickyMessageIds: ce,
3015
+ onToggleStickyMessage: Ee,
3016
+ onReady: () => de(X)
3017
+ }, X), w] }) : /* @__PURE__ */ U(V, { children: [w, he] }), t[29] = w, t[30] = he, t[31] = ce, t[32] = oe, t[33] = Y, t[34] = be, t[35] = se, t[36] = X, t[37] = R, t[38] = Ae) : Ae = t[38];
3019
3018
  let je;
3020
- t[41] === xe ? je = t[42] : (je = xe ? /* @__PURE__ */ H(Me.ScrollToBottom, { "aria-label": "Scroll to latest message" }) : null, t[41] = xe, t[42] = je);
3019
+ t[39] !== ke || t[40] !== Ae ? (je = /* @__PURE__ */ H(Me.Viewport, {
3020
+ visibility: ke,
3021
+ children: Ae
3022
+ }), t[39] = ke, t[40] = Ae, t[41] = je) : je = t[41];
3021
3023
  let Ne;
3022
- t[43] !== De || t[44] !== Ae || t[45] !== je ? (Ne = /* @__PURE__ */ U(Me.Root, { children: [
3023
- De,
3024
- Ae,
3025
- je
3026
- ] }), t[43] = De, t[44] = Ae, t[45] = je, t[46] = Ne) : Ne = t[46];
3024
+ t[42] === Se ? Ne = t[43] : (Ne = Se ? /* @__PURE__ */ H(Me.ScrollToBottom, { "aria-label": "Scroll to latest message" }) : null, t[42] = Se, t[43] = Ne);
3027
3025
  let Pe;
3028
- t[47] !== be || t[48] !== L ? (Pe = L ? /* @__PURE__ */ H(ha, { hidden: !be }) : null, t[47] = be, t[48] = L, t[49] = Pe) : Pe = t[49];
3029
- let Fe = n ?? r[0]?.id, Z;
3030
- t[50] === r ? Z = t[51] : (Z = vt(r), t[50] = r, t[51] = Z);
3031
- let Ie;
3032
- t[52] !== v || t[53] !== ve || t[54] !== y || t[55] !== S || t[56] !== G || t[57] !== d || t[58] !== te || t[59] !== he || t[60] !== V || t[61] !== h || t[62] !== g || t[63] !== F || t[64] !== x || t[65] !== m || t[66] !== N || t[67] !== M || t[68] !== j || t[69] !== Ce || t[70] !== K || t[71] !== L || t[72] !== W || t[73] !== Fe || t[74] !== Z || t[75] !== w ? (Ie = /* @__PURE__ */ H(fa, {
3033
- conversationKey: Fe,
3034
- recentUserMessages: Z,
3026
+ t[44] !== Oe || t[45] !== je || t[46] !== Ne ? (Pe = /* @__PURE__ */ U(Me.Root, { children: [
3027
+ Oe,
3028
+ je,
3029
+ Ne
3030
+ ] }), t[44] = Oe, t[45] = je, t[46] = Ne, t[47] = Pe) : Pe = t[47];
3031
+ let Fe;
3032
+ t[48] !== xe || t[49] !== R ? (Fe = R ? /* @__PURE__ */ H(_a, { hidden: !xe }) : null, t[48] = xe, t[49] = R, t[50] = Fe) : Fe = t[50];
3033
+ let Ie = n ?? r[0]?.id, Le;
3034
+ t[51] === r ? Le = t[52] : (Le = yt(r), t[51] = r, t[52] = Le);
3035
+ let Re;
3036
+ t[53] !== v || t[54] !== ye || t[55] !== y || t[56] !== S || t[57] !== K || t[58] !== d || t[59] !== re || t[60] !== ge || t[61] !== W || t[62] !== h || t[63] !== g || t[64] !== I || t[65] !== x || t[66] !== m || t[67] !== P || t[68] !== N || t[69] !== M || t[70] !== we || t[71] !== q || t[72] !== R || t[73] !== G || t[74] !== Ie || t[75] !== Le || t[76] !== T ? (Re = /* @__PURE__ */ H(ma, {
3037
+ conversationKey: Ie,
3038
+ recentUserMessages: Le,
3035
3039
  actions: v,
3036
3040
  attachedResources: y,
3037
3041
  attachmentList: S,
3038
- chatInputAutoFocus: G,
3042
+ chatInputAutoFocus: K,
3039
3043
  chatInputPlaceholder: d,
3040
- chatInputQuestionPrompt: ve,
3041
- chatInputReferences: te,
3042
- hasWorkspaceHub: he,
3043
- inputDisabled: V,
3044
- submitDisabled: W,
3044
+ chatInputQuestionPrompt: ye,
3045
+ chatInputReferences: re,
3046
+ hasWorkspaceHub: ge,
3047
+ inputDisabled: W,
3048
+ submitDisabled: G,
3045
3049
  onAttachFiles: h,
3046
3050
  onAttachText: g,
3047
- onChatInputAddReference: F,
3051
+ onChatInputAddReference: I,
3048
3052
  onClearAttachments: x,
3049
3053
  onInterrupt: m,
3050
- onQueuedFollowUpMove: N,
3051
- onQueuedFollowUpRemove: M,
3052
- onQueuedFollowUpUpdate: j,
3053
- queuedComposer: Ce,
3054
- queuedFollowUps: K,
3055
- streaming: L,
3056
- workspaceHub: w
3057
- }), t[52] = v, t[53] = ve, t[54] = y, t[55] = S, t[56] = G, t[57] = d, t[58] = te, t[59] = he, t[60] = V, t[61] = h, t[62] = g, t[63] = F, t[64] = x, t[65] = m, t[66] = N, t[67] = M, t[68] = j, t[69] = Ce, t[70] = K, t[71] = L, t[72] = W, t[73] = Fe, t[74] = Z, t[75] = w, t[76] = Ie) : Ie = t[76];
3058
- let Le;
3059
- return t[77] !== C || t[78] !== Ne || t[79] !== Pe || t[80] !== Ie ? (Le = /* @__PURE__ */ U(b, {
3054
+ onQueuedFollowUpMove: P,
3055
+ onQueuedFollowUpRemove: N,
3056
+ onQueuedFollowUpUpdate: M,
3057
+ queuedComposer: we,
3058
+ queuedFollowUps: q,
3059
+ streaming: R,
3060
+ workspaceHub: T
3061
+ }), t[53] = v, t[54] = ye, t[55] = y, t[56] = S, t[57] = K, t[58] = d, t[59] = re, t[60] = ge, t[61] = W, t[62] = h, t[63] = g, t[64] = I, t[65] = x, t[66] = m, t[67] = P, t[68] = N, t[69] = M, t[70] = we, t[71] = q, t[72] = R, t[73] = G, t[74] = Ie, t[75] = Le, t[76] = T, t[77] = Re) : Re = t[77];
3062
+ let ze;
3063
+ return t[78] !== C || t[79] !== Pe || t[80] !== Fe || t[81] !== Re ? (ze = /* @__PURE__ */ U(b, {
3060
3064
  position: "relative",
3061
3065
  direction: "column",
3062
3066
  w: "full",
3063
3067
  h: "full",
3064
3068
  overflow: "hidden",
3065
3069
  children: [
3066
- Ne,
3067
- C,
3068
3070
  Pe,
3069
- Ie
3071
+ C,
3072
+ Fe,
3073
+ Re
3070
3074
  ]
3071
- }), t[77] = C, t[78] = Ne, t[79] = Pe, t[80] = Ie, t[81] = Le) : Le = t[81], Le;
3075
+ }), t[78] = C, t[79] = Pe, t[80] = Fe, t[81] = Re, t[82] = ze) : ze = t[82], ze;
3072
3076
  };
3073
- function _a(e, t) {
3077
+ function ya(e, t) {
3074
3078
  return e + +(t.role === "user");
3075
3079
  }
3076
- function va() {
3080
+ function ba() {
3077
3081
  return /* @__PURE__ */ new Set();
3078
3082
  }
3079
3083
  //#endregion
3080
3084
  //#region src/components/chat-ui/components/chat-skeleton.tsx
3081
- var ya = (e) => /* @__PURE__ */ H(M, {
3085
+ var xa = (e) => /* @__PURE__ */ H(M, {
3082
3086
  gap: "xs",
3083
3087
  w: "full",
3084
3088
  children: e.map((e, t) => /* @__PURE__ */ H(O, {
@@ -3086,13 +3090,13 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3086
3090
  width: e,
3087
3091
  borderRadius: "xs"
3088
3092
  }, `${e}-${t}`))
3089
- }), ba = () => {
3093
+ }), Sa = () => {
3090
3094
  let e = B(2), t;
3091
- e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ H(Z.Root, {
3095
+ e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ H(Ie.Root, {
3092
3096
  from: "user",
3093
- children: /* @__PURE__ */ H(Z.Content, {
3097
+ children: /* @__PURE__ */ H(Ie.Content, {
3094
3098
  from: "user",
3095
- children: ya(["72%", "46%"])
3099
+ children: xa(["72%", "46%"])
3096
3100
  })
3097
3101
  }), e[0] = t) : t = e[0];
3098
3102
  let n;
@@ -3100,11 +3104,11 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3100
3104
  minH: "full",
3101
3105
  py: "xs",
3102
3106
  gap: "0",
3103
- children: [t, /* @__PURE__ */ H(Z.Root, {
3107
+ children: [t, /* @__PURE__ */ H(Ie.Root, {
3104
3108
  from: "assistant",
3105
- children: /* @__PURE__ */ H(Z.Content, {
3109
+ children: /* @__PURE__ */ H(Ie.Content, {
3106
3110
  from: "assistant",
3107
- children: ya([
3111
+ children: xa([
3108
3112
  "76%",
3109
3113
  "62%",
3110
3114
  "40%"
@@ -3112,15 +3116,15 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3112
3116
  })
3113
3117
  })]
3114
3118
  }), e[1] = n) : n = e[1], n;
3115
- }, xa = 3, Sa = 10, Ca = 4, wa = (e, t) => {
3119
+ }, Ca = 3, wa = 10, Ta = 4, Ea = (e, t) => {
3116
3120
  if (t === null) return 0;
3117
3121
  let n = Math.abs(e - t);
3118
- return n >= Ca ? 0 : (1 + Math.cos(Math.PI * n / Ca)) / 2;
3119
- }, Ta = (e, t) => {
3122
+ return n >= Ta ? 0 : (1 + Math.cos(Math.PI * n / Ta)) / 2;
3123
+ }, Da = (e, t) => {
3120
3124
  if (t === null) return "fg.subtle";
3121
3125
  let n = Math.abs(e - t);
3122
- return n < .5 ? "fg" : n < Ca ? "fg.muted" : "fg.subtle";
3123
- }, Ea = (e) => {
3126
+ return n < .5 ? "fg" : n < Ta ? "fg.muted" : "fg.subtle";
3127
+ }, Oa = (e) => {
3124
3128
  let t = B(11), { item: n, position: r } = e, i = `${r.left}px`, a = `${r.top}px`, o;
3125
3129
  t[0] === n.message ? o = t[1] : (o = /* @__PURE__ */ H(N, {
3126
3130
  textStyle: "label/S/medium",
@@ -3158,9 +3162,9 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3158
3162
  pointerEvents: "none",
3159
3163
  children: c
3160
3164
  }) }), t[7] = i, t[8] = a, t[9] = c, t[10] = l) : l = t[10], l;
3161
- }, Da = (e) => {
3165
+ }, ka = (e) => {
3162
3166
  let t = B(22), { items: n, onSelect: r, floating: i } = e, a = i !== void 0 && i, [o, s] = J(null), [c, l] = J(null);
3163
- if (n.length < xa) return null;
3167
+ if (n.length < Ca) return null;
3164
3168
  let u;
3165
3169
  t[0] === n.length ? u = t[1] : (u = (e) => {
3166
3170
  let t = e.currentTarget.getBoundingClientRect(), r = (e.clientY - t.top) / t.height, i = Math.min(n.length - 1, Math.max(0, r * n.length - .5)), a = Math.round(i);
@@ -3185,8 +3189,8 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3185
3189
  t[9] !== r || t[10] !== o ? (e = (e, t) => /* @__PURE__ */ H(L.button, {
3186
3190
  type: "button",
3187
3191
  h: "2px",
3188
- w: `${Sa + 16 * wa(t, o)}px`,
3189
- bg: Ta(t, o),
3192
+ w: `${wa + 16 * Ea(t, o)}px`,
3193
+ bg: Da(t, o),
3190
3194
  borderRadius: "1px",
3191
3195
  transition: "width 80ms linear, background-color 80ms linear",
3192
3196
  "aria-label": `Jump to message ${t + 1}`,
@@ -3207,7 +3211,7 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3207
3211
  children: _
3208
3212
  }), t[12] = d, t[13] = h, t[14] = _, t[15] = v) : v = t[15];
3209
3213
  let y;
3210
- t[16] !== p || t[17] !== c ? (y = p && c ? /* @__PURE__ */ H(Ea, {
3214
+ t[16] !== p || t[17] !== c ? (y = p && c ? /* @__PURE__ */ H(Oa, {
3211
3215
  item: p,
3212
3216
  position: c
3213
3217
  }) : null, t[16] = p, t[17] = c, t[18] = y) : y = t[18];
@@ -3218,7 +3222,7 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3218
3222
  flexShrink: 0,
3219
3223
  children: [v, y]
3220
3224
  }), t[19] = v, t[20] = y, t[21] = x) : x = t[21], x;
3221
- }, Oa = (e) => {
3225
+ }, Aa = (e) => {
3222
3226
  let t = B(13), { status: n, statusLabel: r, additions: i, deletions: a } = e;
3223
3227
  if (n === "loading") {
3224
3228
  let e;
@@ -3240,7 +3244,7 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3240
3244
  }
3241
3245
  if (n === "error") {
3242
3246
  let e;
3243
- t[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ H(te, {
3247
+ t[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ H(ne, {
3244
3248
  size: 14,
3245
3249
  color: "var(--chakra-colors-fg-error)"
3246
3250
  }), t[3] = e) : e = t[3];
@@ -3274,9 +3278,9 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3274
3278
  gap: "2xs",
3275
3279
  children: [o, s]
3276
3280
  }), t[10] = o, t[11] = s, t[12] = c) : c = t[12], c;
3277
- }, ka = (e) => {
3281
+ }, ja = (e) => {
3278
3282
  let t = B(13), { workspaceControl: n, additions: r, deletions: i, action: a, status: o, statusLabel: s } = e, c = o === void 0 ? "ready" : o, l;
3279
- t[0] !== r || t[1] !== i || t[2] !== c || t[3] !== s ? (l = /* @__PURE__ */ H(Oa, {
3283
+ t[0] !== r || t[1] !== i || t[2] !== c || t[3] !== s ? (l = /* @__PURE__ */ H(Aa, {
3280
3284
  status: c,
3281
3285
  statusLabel: s,
3282
3286
  additions: r,
@@ -3306,6 +3310,6 @@ var ya = (e) => /* @__PURE__ */ H(M, {
3306
3310
  }), t[10] = u, t[11] = d, t[12] = f) : f = t[12], f;
3307
3311
  };
3308
3312
  //#endregion
3309
- export { Le as ApprovalPrompt, Be as AttachmentList, We as AutoScroll, Et as ChatInput, Z as ChatMessage, ga as ChatPanel, Me as ChatPrimitives, ba as ChatSkeleton, ka as ChatWorkspaceHub, Da as ConversationBrowse, _t as SendButton, ca as createSerializedPromptState };
3313
+ export { Re as ApprovalPrompt, Ve as AttachmentList, Ge as AutoScroll, Dt as ChatInput, Ie as ChatMessage, va as ChatPanel, Me as ChatPrimitives, Sa as ChatSkeleton, ja as ChatWorkspaceHub, ka as ConversationBrowse, vt as SendButton, ua as createSerializedPromptState };
3310
3314
 
3311
3315
  //# sourceMappingURL=chat-ui.js.map