@icanbwell/baileyai-chat-ui 1.0.3 → 1.0.4

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.
@@ -105,38 +105,38 @@ function T(e) {
105
105
  }
106
106
  //#endregion
107
107
  //#region src/logic/useBaileyChat.ts
108
- var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `bailey-${Date.now()}-${Math.random().toString(36).slice(2)}`, ee = (e, t, n) => {
108
+ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `bailey-${Date.now()}-${Math.random().toString(36).slice(2)}`, k = (e, t, n) => {
109
109
  if (e === 401 || e === 403) return "Bailey isn't reachable with your current login.";
110
110
  let r = `Bailey request failed (status ${e ?? "network error"}).`, i = (n || t || "").trim();
111
111
  return i ? `${r} ${i.length > E ? `${i.slice(0, E)}…` : i}` : r;
112
- }, k = ({ transport: e, model: t, instructions: n, tools: i = [], toolChoice: o, firstUserMessagePrefix: s, onAssistantMessageComplete: u, idleTimeoutMs: d = D }) => {
113
- let [f, p] = l([]), [m, h] = l([]), [g, _] = l(null), [v, y] = l("idle"), [b, x] = l(null), S = c(null), w = c(""), E = c(0), k = c([]);
112
+ }, A = ({ transport: e, model: t, instructions: n, tools: i = [], toolChoice: o, firstUserMessagePrefix: s, onAssistantMessageComplete: u, idleTimeoutMs: d = D }) => {
113
+ let [f, p] = l([]), [m, h] = l([]), [g, _] = l(null), [v, y] = l("idle"), [b, x] = l(null), S = c(null), w = c(""), E = c(0), A = c([]);
114
114
  a(() => {
115
- k.current = f;
115
+ A.current = f;
116
116
  }, [f]);
117
- let A = c([]), j = c(/* @__PURE__ */ new Map()), M = c(/* @__PURE__ */ new Map()), N = c(null), P = r(() => {
118
- N.current !== null && (clearTimeout(N.current), N.current = null);
119
- }, []), F = r((e) => {
120
- P(), N.current = setTimeout(() => {
117
+ let j = c([]), M = c(/* @__PURE__ */ new Map()), N = c(/* @__PURE__ */ new Map()), P = c(null), F = r(() => {
118
+ P.current !== null && (clearTimeout(P.current), P.current = null);
119
+ }, []), I = r((e) => {
120
+ F(), P.current = setTimeout(() => {
121
121
  e.abort(new DOMException("The assistant took too long to respond. Please try again.", "TimeoutError"));
122
122
  }, d);
123
- }, [P, d]);
123
+ }, [F, d]);
124
124
  a(() => () => {
125
- S.current?.abort(), P();
126
- }, [P]);
127
- let I = r((e, t, n) => {
125
+ S.current?.abort(), F();
126
+ }, [F]);
127
+ let L = r((e, t, n) => {
128
128
  let r = (e) => {
129
129
  n.push(e), h((t) => [...t, e]);
130
130
  };
131
131
  if (t.type === "response.output_text.delta") {
132
132
  if (!t.delta) return !1;
133
- let n = j.current.get(e) ?? {
133
+ let n = M.current.get(e) ?? {
134
134
  raw: "",
135
135
  emittedCount: 0
136
136
  };
137
137
  n.raw += t.delta;
138
138
  let { cleanedText: i, matches: a } = C(n.raw), o = i.trim(), s = a.slice(n.emittedCount);
139
- if (n.emittedCount = a.length, j.current.set(e, n), M.current.set(e, o), p((t) => t.map((t) => t.id === e ? {
139
+ if (n.emittedCount = a.length, M.current.set(e, n), N.current.set(e, o), p((t) => t.map((t) => t.id === e ? {
140
140
  ...t,
141
141
  content: o
142
142
  } : t)), s.length > 0) {
@@ -192,7 +192,7 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
192
192
  at: Date.now(),
193
193
  turnSentAt: E.current
194
194
  }), !0);
195
- }, []), L = r(async (r) => {
195
+ }, []), R = r(async (r) => {
196
196
  y("streaming"), x(null);
197
197
  let a = Date.now();
198
198
  E.current = a;
@@ -203,15 +203,17 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
203
203
  streaming: !0,
204
204
  createdAt: a
205
205
  };
206
- p((e) => [...e, l]), A.current = [...r, l];
206
+ p((e) => [...e, l]), j.current = [...r, l];
207
207
  let d = r.findIndex((e) => e.role === "user" && !e.hidden), f = r.map((e, t) => t === d && s ? {
208
208
  role: e.role,
209
209
  content: `${s}${e.content}`,
210
- hidden: e.hidden
210
+ hidden: e.hidden,
211
+ titleHint: e.titleHint
211
212
  } : {
212
213
  role: e.role,
213
214
  content: e.content,
214
- hidden: e.hidden
215
+ hidden: e.hidden,
216
+ titleHint: e.titleHint
215
217
  });
216
218
  _({
217
219
  model: t,
@@ -228,7 +230,7 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
228
230
  }
229
231
  });
230
232
  let m = new AbortController();
231
- S.current = m, F(m);
233
+ S.current = m, I(m);
232
234
  let g = "", v = null, b = !1, C = !1, w = [], D = (e, t) => {
233
235
  y("error"), x(e);
234
236
  let n = {
@@ -239,7 +241,7 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
239
241
  ...t
240
242
  };
241
243
  w.push(n), h((e) => [...e, n]);
242
- }, k = (e, t) => {
244
+ }, A = (e, t) => {
243
245
  e.forEach((e) => {
244
246
  if (e.type === "error") {
245
247
  v = e.message;
@@ -252,7 +254,7 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
252
254
  w.push(t), h((e) => [...e, t]);
253
255
  return;
254
256
  }
255
- e.type === "response.output_text.delta" && e.delta && (C = !0), I(c, e, w) && (b = !0);
257
+ e.type === "response.output_text.delta" && e.delta && (C = !0), L(c, e, w) && (b = !0);
256
258
  }), t && p((e) => e.map((e) => e.id === c ? {
257
259
  ...e,
258
260
  streaming: !1
@@ -267,9 +269,9 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
267
269
  toolChoice: o,
268
270
  signal: m.signal,
269
271
  onChunk: (e) => {
270
- F(m), g += e;
272
+ I(m), g += e;
271
273
  let { events: t, remainder: n, done: r } = T(g);
272
- g = n, k(t, r);
274
+ g = n, A(t, r);
273
275
  let i = Date.now();
274
276
  _((e) => e && e.sentAt === a ? {
275
277
  ...e,
@@ -289,14 +291,14 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
289
291
  });
290
292
  if (g.trim()) {
291
293
  let { events: e, done: t } = T(`${g}\n\n`);
292
- g = "", k(e, t);
294
+ g = "", A(e, t);
293
295
  }
294
296
  if (v) {
295
297
  y("error"), x(v);
296
298
  return;
297
299
  }
298
300
  if (r === void 0 || r >= 400) {
299
- D(ee(r, s, l), {
301
+ D(k(r, s, l), {
300
302
  httpStatus: r,
301
303
  rawBody: s || void 0
302
304
  });
@@ -311,7 +313,7 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
311
313
  return;
312
314
  }
313
315
  y("idle");
314
- let d = M.current.get(c) ?? "";
316
+ let d = N.current.get(c) ?? "";
315
317
  _((e) => e && e.sentAt === a ? {
316
318
  ...e,
317
319
  response: { content: d }
@@ -333,12 +335,12 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
333
335
  }
334
336
  D(t?.message || "Bailey request failed.");
335
337
  } finally {
336
- P();
337
- let e = M.current.get(c) ?? "";
338
- j.current.delete(c), M.current.delete(c), p((e) => e.flatMap((e) => e.id === c ? e.content ? [{
338
+ F();
339
+ let e = N.current.get(c) ?? "";
340
+ M.current.delete(c), N.current.delete(c), p((e) => e.flatMap((e) => e.id === c ? e.content ? [{
339
341
  ...e,
340
342
  streaming: !1
341
- }] : [] : [e])), A.current = A.current.flatMap((t) => t.id === c ? e ? [{
343
+ }] : [] : [e])), j.current = j.current.flatMap((t) => t.id === c ? e ? [{
342
344
  ...t,
343
345
  content: e,
344
346
  streaming: !1
@@ -352,11 +354,11 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
352
354
  o,
353
355
  s,
354
356
  u,
357
+ L,
355
358
  I,
356
- F,
357
- P
358
- ]), R = r((e) => {
359
- k.current = e, p(e);
359
+ F
360
+ ]), z = r((e) => {
361
+ A.current = e, p(e);
360
362
  }, []);
361
363
  return {
362
364
  messages: f,
@@ -373,35 +375,36 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
373
375
  role: "user",
374
376
  content: t,
375
377
  createdAt: Date.now()
376
- }, r = [...A.current, n];
377
- A.current = r, R([...k.current, n]), L(r);
378
- }, [L, R]),
379
- sendHidden: r((e) => {
378
+ }, r = [...j.current, n];
379
+ j.current = r, z([...A.current, n]), R(r);
380
+ }, [R, z]),
381
+ sendHidden: r((e, t) => {
380
382
  if (v === "streaming") return;
381
- let t = e.trim();
382
- if (!t) return;
383
- w.current = t;
384
- let n = {
383
+ let n = e.trim();
384
+ if (!n) return;
385
+ w.current = n;
386
+ let r = t?.trim(), i = {
385
387
  id: O(),
386
388
  role: "user",
387
- content: t,
389
+ content: n,
388
390
  createdAt: Date.now(),
389
- hidden: !0
390
- }, r = [...A.current, n];
391
- A.current = r, L(r);
392
- }, [L, v]),
391
+ hidden: !0,
392
+ ...r ? { titleHint: r } : {}
393
+ }, a = [...j.current, i];
394
+ j.current = a, R(a);
395
+ }, [R, v]),
393
396
  stop: r(() => {
394
397
  S.current?.abort();
395
398
  }, []),
396
399
  retryLast: r(() => {
397
400
  if (v === "streaming" || !w.current) return;
398
- let e = k.current, t = e[e.length - 1], n = t && t.role === "assistant" ? e.slice(0, -1) : e;
399
- R(n);
400
- let r = A.current, i = r[r.length - 1], a = i && i.role === "assistant" ? r.slice(0, -1) : r;
401
- A.current = a, L(a);
401
+ let e = A.current, t = e[e.length - 1], n = t && t.role === "assistant" ? e.slice(0, -1) : e;
402
+ z(n);
403
+ let r = j.current, i = r[r.length - 1], a = i && i.role === "assistant" ? r.slice(0, -1) : r;
404
+ j.current = a, R(a);
402
405
  }, [
403
- L,
404
406
  R,
407
+ z,
405
408
  v
406
409
  ]),
407
410
  clearTrace: r(() => h([]), []),
@@ -409,29 +412,29 @@ var E = 200, D = 15e4, O = () => typeof crypto < "u" && typeof crypto.randomUUID
409
412
  x(null), y((e) => e === "error" ? "idle" : e);
410
413
  }, []),
411
414
  newChat: r(() => {
412
- S.current?.abort(), R([]), A.current = [], h([]), _(null), y("idle"), x(null), w.current = "";
413
- }, [R]),
415
+ S.current?.abort(), z([]), j.current = [], h([]), _(null), y("idle"), x(null), w.current = "";
416
+ }, [z]),
414
417
  loadMessages: r((e) => {
415
418
  S.current?.abort();
416
419
  let t = e.filter((e) => e.role === "user" || e.role === "assistant").map((e) => ({
417
420
  ...e,
418
421
  streaming: !1
419
422
  }));
420
- R(t.filter((e) => !e.hidden)), A.current = t, h([]), _(null), y("idle"), x(null), w.current = "";
421
- }, [R])
423
+ z(t.filter((e) => !e.hidden)), j.current = t, h([]), _(null), y("idle"), x(null), w.current = "";
424
+ }, [z])
422
425
  };
423
426
  };
424
427
  //#endregion
425
428
  //#region src/utils/prompt.ts
426
- function A(...e) {
429
+ function j(...e) {
427
430
  return e.filter((e) => !!(e && e.trim())).join("\n\n");
428
431
  }
429
432
  //#endregion
430
433
  //#region src/utils/toolCalls.ts
431
- var j = "call_tool", M = "a tool";
432
- function N(e, t) {
434
+ var M = "call_tool", N = "a tool";
435
+ function P(e, t) {
433
436
  let n = {
434
- name: e === j ? M : e,
437
+ name: e === M ? N : e,
435
438
  args: null,
436
439
  viaCallTool: !1
437
440
  };
@@ -444,7 +447,7 @@ function N(e, t) {
444
447
  }
445
448
  if (typeof r != "object" || !r) return n;
446
449
  let i = r;
447
- if (e === j) {
450
+ if (e === M) {
448
451
  let e = typeof i.name == "string" ? i.name : void 0;
449
452
  if (!e) return n;
450
453
  let t = i.arguments;
@@ -462,32 +465,32 @@ function N(e, t) {
462
465
  }
463
466
  //#endregion
464
467
  //#region src/utils/table.ts
465
- var P = 5, F = (e) => e.type === "text" ? e.value ?? "" : (e.children ?? []).map(F).join(""), I = (e) => {
468
+ var F = 5, I = (e) => e.type === "text" ? e.value ?? "" : (e.children ?? []).map(I).join(""), L = (e) => {
466
469
  if (e.tagName === "a" && e.properties?.href) return e.properties.href;
467
470
  for (let t of e.children ?? []) {
468
- let e = I(t);
471
+ let e = L(t);
469
472
  if (e) return e;
470
473
  }
471
- }, L = (e, t) => (e.children ?? []).find((e) => e.tagName === t), R = (e) => {
472
- let t = F(e), n = I(e);
474
+ }, R = (e, t) => (e.children ?? []).find((e) => e.tagName === t), z = (e) => {
475
+ let t = I(e), n = L(e);
473
476
  return n ? {
474
477
  text: t,
475
478
  href: n
476
479
  } : { text: t };
477
- }, z = (e) => (e.children ?? []).filter((e) => e.type === "element").map(R), B = (e) => {
480
+ }, B = (e) => (e.children ?? []).filter((e) => e.type === "element").map(z), V = (e) => {
478
481
  if (e.tagName !== "table") return null;
479
- let t = L(e, "thead"), n = t && L(t, "tr");
482
+ let t = R(e, "thead"), n = t && R(t, "tr");
480
483
  return {
481
- headers: n ? z(n).map((e) => e.text) : [],
482
- rows: (L(e, "tbody")?.children ?? []).filter((e) => e.tagName === "tr").map(z)
484
+ headers: n ? B(n).map((e) => e.text) : [],
485
+ rows: (R(e, "tbody")?.children ?? []).filter((e) => e.tagName === "tr").map(B)
483
486
  };
484
- }, V = (e) => e.length > 5, H = "When a chart would help answer a question (e.g. plotting a trend over time), include a fenced code block tagged `chartjs` containing a JSON object with this exact shape: {\"type\": \"bar\" | \"line\" | \"pie\" | \"doughnut\" | \"scatter\", \"title\"?: string, \"data\": {\"labels\": string[], \"datasets\": [{\"label\": string, \"data\": number[]}]}}. For \"scatter\" charts, omit \"labels\" and give each dataset \"data\" as an array of {\"x\": number, \"y\": number} points instead of a number array. \"pie\" and \"doughnut\" charts must have exactly one dataset. Do not include any other fields (no \"options\", no colors) — the app handles styling. Example:\n```chartjs\n{\"type\": \"line\", \"title\": \"BP readings\", \"data\": {\"labels\": [\"Jul 14\", \"Jul 21\", \"Jul 28\"], \"datasets\": [{\"label\": \"Systolic\", \"data\": [120, 118, 122]}]}}\n```", te = [
487
+ }, H = (e) => e.length > 5, ee = "When a chart would help answer a question (e.g. plotting a trend over time), include a fenced code block tagged `chartjs` containing a JSON object with this exact shape: {\"type\": \"bar\" | \"line\" | \"pie\" | \"doughnut\" | \"scatter\", \"title\"?: string, \"data\": {\"labels\": string[], \"datasets\": [{\"label\": string, \"data\": number[]}]}}. For \"scatter\" charts, omit \"labels\" and give each dataset \"data\" as an array of {\"x\": number, \"y\": number} points instead of a number array. \"pie\" and \"doughnut\" charts must have exactly one dataset. Do not include any other fields (no \"options\", no colors) — the app handles styling. Example:\n```chartjs\n{\"type\": \"line\", \"title\": \"BP readings\", \"data\": {\"labels\": [\"Jul 14\", \"Jul 21\", \"Jul 28\"], \"datasets\": [{\"label\": \"Systolic\", \"data\": [120, 118, 122]}]}}\n```", U = [
485
488
  "bar",
486
489
  "line",
487
490
  "pie",
488
491
  "doughnut",
489
492
  "scatter"
490
- ], U = 8, W = 50, G = 8, K = 500, ne = (e) => typeof e == "object" && !!e && typeof e.x == "number" && typeof e.y == "number", re = (e) => {
493
+ ], te = 8, W = 50, G = 8, K = 500, ne = (e) => typeof e == "object" && !!e && typeof e.x == "number" && typeof e.y == "number", re = (e) => {
491
494
  let t;
492
495
  try {
493
496
  t = JSON.parse(e);
@@ -496,13 +499,13 @@ var P = 5, F = (e) => e.type === "text" ? e.value ?? "" : (e.children ?? []).map
496
499
  }
497
500
  if (typeof t != "object" || !t) return null;
498
501
  let n = t;
499
- if (typeof n.type != "string" || !te.includes(n.type)) return null;
502
+ if (typeof n.type != "string" || !U.includes(n.type)) return null;
500
503
  let r = n.type;
501
504
  if (n.title !== void 0 && typeof n.title != "string") return null;
502
505
  let i = n.title;
503
506
  if (typeof n.data != "object" || n.data === null) return null;
504
507
  let a = n.data;
505
- if (!Array.isArray(a.datasets) || a.datasets.length < 1 || a.datasets.length > U || (r === "pie" || r === "doughnut") && a.datasets.length !== 1) return null;
508
+ if (!Array.isArray(a.datasets) || a.datasets.length < 1 || a.datasets.length > te || (r === "pie" || r === "doughnut") && a.datasets.length !== 1) return null;
506
509
  for (let e of a.datasets) if (typeof e != "object" || !e || typeof e.label != "string" || !Array.isArray(e.data)) return null;
507
510
  let o = a.datasets;
508
511
  if (r === "scatter") {
@@ -535,7 +538,7 @@ var P = 5, F = (e) => e.type === "text" ? e.value ?? "" : (e.children ?? []).map
535
538
  raw: "Raw event"
536
539
  };
537
540
  function q(e) {
538
- return e.kind !== "tool_start" && e.kind !== "tool_end" ? null : N(e.name, e.args);
541
+ return e.kind !== "tool_start" && e.kind !== "tool_end" ? null : P(e.name, e.args);
539
542
  }
540
543
  function J(e, t = q(e)) {
541
544
  return e.kind === "pseudo_tool_call" ? e.name : t?.name ?? null;
@@ -562,9 +565,9 @@ function ce(e) {
562
565
  }
563
566
  function Y(e) {
564
567
  switch (e.kind) {
565
- case "tool_start": return `Calling ${N(e.name, e.args).name}...`;
568
+ case "tool_start": return `Calling ${P(e.name, e.args).name}...`;
566
569
  case "tool_end": {
567
- let t = N(e.name, e.args).name;
570
+ let t = P(e.name, e.args).name;
568
571
  return e.isError ? `${t} failed` : `${t} returned`;
569
572
  }
570
573
  case "pseudo_tool_call": return `${e.name} (written as text, not called)`;
@@ -640,7 +643,7 @@ function he(e, t) {
640
643
  }
641
644
  //#endregion
642
645
  //#region src/styles.css?inline
643
- var ge = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-leading:initial;--tw-space-y-reverse:0}}}@layer theme{:root,:host{--font-sans:\"Inter\", -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bailey-accent:#4f46e5;--color-bailey-bubble-bg:#fff;--color-bailey-error:#d32f2f;--color-bailey-border:#e5e5e5;--color-bailey-surface:#fff;--color-bailey-surface-muted:#f9fafb;--color-bailey-text:#000;--color-bailey-text-secondary:#6b6b6b;--color-bailey-tooltip-bg:#000;--color-bailey-tooltip-text:#fff;--color-bailey-page-bg:#eceef4;--color-bailey-heart:#16a34a}}@layer utilities;.bailey-chat-panel{box-sizing:border-box;background-color:var(--color-bailey-page-bg);height:100%;padding:calc(var(--spacing) * 3);font-family:var(--font-sans);flex-direction:column;display:flex}.bailey-chat-panel-inner{width:100%;min-height:0;max-width:var(--container-3xl);gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;margin-inline:auto;display:flex;overflow-y:auto}.bailey-toolbar-row{justify-content:flex-end;display:flex}.bailey-new-chat-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-new-chat-button:hover{text-decoration-line:underline}}.bailey-new-chat-button:disabled{cursor:default;opacity:.5;text-decoration-line:none}.bailey-chat-transcript{min-height:0;padding:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 4);flex:1;overflow-y:auto}.bailey-message-row{margin-bottom:calc(var(--spacing) * 3);justify-content:flex-start;display:flex}.bailey-message-row-user{justify-content:flex-end}.bailey-user-message{flex-direction:column;align-items:flex-end;max-width:75%;display:flex}.bailey-message-meta{margin-bottom:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-message-meta-name{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-bailey-text)}.bailey-user-bubble{border-radius:var(--radius-2xl);background-color:var(--color-bailey-bubble-bg);max-width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);white-space:pre-wrap;color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.bailey-assistant-message{width:100%;padding-inline:var(--spacing)}.bailey-thinking-hint{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);font-style:italic}.bailey-streaming-hint{margin-top:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:block}.bailey-message-actions{margin-top:var(--spacing);align-items:center;gap:var(--spacing);display:flex}.bailey-empty-state{text-align:center;height:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);justify-content:center;align-items:center;display:flex}.bailey-suggestions{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-suggestions-title{padding-inline:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text)}.bailey-suggestion-card{cursor:pointer;appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-2xl);--tw-border-style:none;background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-style:none;display:flex}@media (hover:hover){.bailey-suggestion-card:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.bailey-suggestion-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-text-secondary);flex-shrink:0}.bailey-privacy-note{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:var(--spacing);text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-privacy-note a{color:var(--color-bailey-text-secondary);text-decoration-line:underline}.bailey-activity-line{margin-bottom:calc(var(--spacing) * 2);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-activity-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-accent);flex-shrink:0}.bailey-error-banner{margin-bottom:calc(var(--spacing) * 2);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-error);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--color-bailey-error);display:flex}.bailey-retry-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-error-actions{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-dismiss-button{cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-error);background-color:#0000;border-style:none}@media (hover:hover){.bailey-dismiss-button:hover{opacity:.7}}.bailey-input-row{align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;display:flex}.bailey-input-row:focus-within{border-color:var(--color-bailey-accent)}.bailey-input{--tw-border-style:none;min-width:0;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;background-color:#0000;border-style:none;outline-style:none;flex:1}.bailey-input:disabled{opacity:.5}.bailey-send-button,.bailey-stop-button{cursor:pointer;appearance:none;background-color:#0000;border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}:is(.bailey-send-button,.bailey-stop-button):disabled{cursor:default;opacity:.4}.bailey-send-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--color-bailey-heart);border-style:none}@media (hover:hover){.bailey-send-button:hover{background-color:#16a34a1a}@supports (color:color-mix(in lab, red, red)){.bailey-send-button:hover{background-color:color-mix(in oklab, var(--color-bailey-heart) 10%, transparent)}}}.bailey-send-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-stop-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--color-bailey-error);border-style:none}@media (hover:hover){.bailey-stop-button:hover{background-color:#d32f2f1a}@supports (color:color-mix(in lab, red, red)){.bailey-stop-button:hover{background-color:color-mix(in oklab, var(--color-bailey-error) 10%, transparent)}}}.bailey-stop-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-copy-button{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;border-radius:2147483647px;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-copy-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-copy-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-copy-button:hover{color:var(--color-bailey-text)}}.bailey-copy-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-tooltip-content{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));background-color:var(--color-bailey-tooltip-bg,#000);color:var(--color-bailey-tooltip-text,#fff);border-radius:.25rem}.bailey-tooltip-arrow{fill:var(--color-bailey-tooltip-bg,#000)}.bailey-markdown-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.bailey-markdown-content th{background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);vertical-align:top}.bailey-markdown-content tr:nth-child(2n){background-color:var(--color-bailey-surface-muted)}.bailey-markdown-content{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.bailey-markdown-content>:first-child{margin-top:0}.bailey-markdown-content>:last-child{margin-bottom:0}.bailey-markdown-content p{margin-block:calc(var(--spacing) * 2)}.bailey-markdown-content h1{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h2{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h3{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h4,.bailey-markdown-content h5,.bailey-markdown-content h6{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content ul{margin-block:calc(var(--spacing) * 2);list-style-type:disc}:where(.bailey-markdown-content ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ul{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content ol{margin-block:calc(var(--spacing) * 2);list-style-type:decimal}:where(.bailey-markdown-content ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ol{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content a{color:var(--color-bailey-accent);text-underline-offset:2px;text-decoration-line:underline}.bailey-markdown-content code{background-color:var(--color-bailey-surface-muted);padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);border-radius:.25rem;font-size:.85em}.bailey-markdown-content pre{margin-block:calc(var(--spacing) * 2);border-radius:var(--radius-md);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 2);overflow-x:auto}.bailey-markdown-content pre code{background-color:#0000;padding:0}.bailey-markdown-content blockquote{margin-block:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 3);color:var(--color-bailey-text-secondary);font-style:italic}.bailey-markdown-content hr{margin-block:calc(var(--spacing) * 3);border-color:var(--color-bailey-border)}.bailey-trace-panel{margin-bottom:calc(var(--spacing) * 2)}.bailey-trace-toggle-row{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-trace-toggle{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-trace-toggle:hover{text-decoration-line:underline}}.bailey-trace-toggle-error{color:var(--color-bailey-error)}.bailey-trace-summary{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-trace-summary-error{color:var(--color-bailey-error)}.bailey-trace-body{margin-top:var(--spacing);max-height:calc(var(--spacing) * 80);overflow-y:auto}.bailey-trace-actions-row{justify-content:flex-end;gap:calc(var(--spacing) * 3);display:flex}.bailey-trace-copy-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}@media (hover:hover){.bailey-trace-copy-button:hover{text-decoration-line:none}}.bailey-trace-request-details{margin-bottom:var(--spacing);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding:calc(var(--spacing) * 2)}.bailey-trace-request-meta{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:block}.bailey-trace-rows{gap:var(--spacing);flex-direction:column;display:flex}.bailey-trace-row{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-row-header{align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.bailey-trace-row-time{color:var(--color-bailey-text-secondary)}.bailey-trace-row-gap{color:var(--color-gray-400)}.bailey-trace-row-summary{word-break:break-all}.bailey-trace-chip{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-semibold);font-size:.65rem;font-weight:var(--font-weight-semibold);border-radius:.25rem}.bailey-trace-chip-default{background-color:var(--color-gray-200);color:var(--color-gray-700)}.bailey-trace-chip-info{background-color:var(--color-blue-100);color:var(--color-blue-700)}.bailey-trace-chip-success{background-color:var(--color-green-100);color:var(--color-green-700)}.bailey-trace-chip-secondary{background-color:var(--color-purple-100);color:var(--color-purple-700)}.bailey-trace-chip-error{background-color:var(--color-red-100);color:var(--color-bailey-error)}.bailey-trace-disclosure{margin-top:var(--spacing)}.bailey-trace-disclosure-summary{cursor:pointer;color:var(--color-bailey-text-secondary);font-size:.7rem}.bailey-trace-disclosure-actions{margin-top:var(--spacing);justify-content:flex-end;display:flex}.bailey-trace-disclosure-content{margin-top:var(--spacing);max-height:calc(var(--spacing) * 48);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 1.5);word-break:break-all;white-space:pre-wrap;border-radius:.25rem;font-size:.7rem;overflow:auto}.bailey-trace-group{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bailey-trace-group-summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-group-failed{margin-left:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}", _e = t(void 0), ve = /:root\s*,\s*:host\s*\{/, ye = ".bailey-chat-panel{";
646
+ var ge = "/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-leading:initial;--tw-space-y-reverse:0}}}@layer theme{:root,:host{--font-sans:\"Inter\", -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bailey-accent:#4f46e5;--color-bailey-bubble-bg:#fff;--color-bailey-error:#d32f2f;--color-bailey-border:#e5e5e5;--color-bailey-surface:#fff;--color-bailey-surface-muted:#f9fafb;--color-bailey-text:#000;--color-bailey-text-secondary:#6b6b6b;--color-bailey-tooltip-bg:#000;--color-bailey-tooltip-text:#fff;--color-bailey-page-bg:#eceef4;--color-bailey-heart:#16a34a}}@layer utilities;.bailey-chat-panel{box-sizing:border-box;background-color:var(--color-bailey-page-bg);height:100%;padding:calc(var(--spacing) * 3);font-family:var(--font-sans);flex-direction:column;display:flex}.bailey-chat-panel-inner{width:100%;min-height:0;max-width:var(--container-3xl);gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;margin-inline:auto;display:flex;overflow-y:auto}.bailey-toolbar-row{justify-content:flex-end;align-items:center;gap:calc(var(--spacing) * 3);display:flex}.bailey-new-chat-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-new-chat-button:hover{text-decoration-line:underline}}.bailey-new-chat-button:disabled{cursor:default;opacity:.5;text-decoration-line:none}.bailey-history-button{height:calc(var(--spacing) * 8);width:calc(var(--spacing) * 8);color:var(--color-gray-700);border-radius:2147483647px;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-history-button:hover{background-color:var(--color-gray-100)}}.bailey-history-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-chat-transcript{min-height:0;padding:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 4);flex:1;overflow-y:auto}.bailey-message-row{margin-bottom:calc(var(--spacing) * 3);justify-content:flex-start;display:flex}.bailey-message-row-user{justify-content:flex-end}.bailey-user-message{flex-direction:column;align-items:flex-end;max-width:75%;display:flex}.bailey-message-meta{margin-bottom:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-message-meta-name{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-bailey-text)}.bailey-user-bubble{border-radius:var(--radius-2xl);background-color:var(--color-bailey-bubble-bg);max-width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);white-space:pre-wrap;color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.bailey-assistant-message{width:100%;padding-inline:var(--spacing)}.bailey-thinking-hint{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);font-style:italic}.bailey-streaming-hint{margin-top:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:block}.bailey-message-actions{margin-top:var(--spacing);align-items:center;gap:var(--spacing);display:flex}.bailey-empty-state{text-align:center;height:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);justify-content:center;align-items:center;display:flex}.bailey-suggestions{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-suggestions-title{padding-inline:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text)}.bailey-suggestion-card{cursor:pointer;appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-2xl);--tw-border-style:none;background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-style:none;display:flex}@media (hover:hover){.bailey-suggestion-card:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.bailey-suggestion-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-text-secondary);flex-shrink:0}.bailey-privacy-note{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:var(--spacing);text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-privacy-note a{color:var(--color-bailey-text-secondary);text-decoration-line:underline}.bailey-activity-line{margin-bottom:calc(var(--spacing) * 2);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-activity-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-accent);flex-shrink:0}.bailey-error-banner{margin-bottom:calc(var(--spacing) * 2);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-error);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--color-bailey-error);display:flex}.bailey-retry-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-error-actions{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-dismiss-button{cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-error);background-color:#0000;border-style:none}@media (hover:hover){.bailey-dismiss-button:hover{opacity:.7}}.bailey-input-row{align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;display:flex}.bailey-input-row:focus-within{border-color:var(--color-bailey-accent)}.bailey-input{--tw-border-style:none;min-width:0;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;background-color:#0000;border-style:none;outline-style:none;flex:1}.bailey-input:disabled{opacity:.5}.bailey-send-button,.bailey-stop-button{cursor:pointer;appearance:none;background-color:#0000;border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}:is(.bailey-send-button,.bailey-stop-button):disabled{cursor:default;opacity:.4}.bailey-send-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--color-bailey-heart);border-style:none}@media (hover:hover){.bailey-send-button:hover{background-color:#16a34a1a}@supports (color:color-mix(in lab, red, red)){.bailey-send-button:hover{background-color:color-mix(in oklab, var(--color-bailey-heart) 10%, transparent)}}}.bailey-send-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-stop-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--color-bailey-error);border-style:none}@media (hover:hover){.bailey-stop-button:hover{background-color:#d32f2f1a}@supports (color:color-mix(in lab, red, red)){.bailey-stop-button:hover{background-color:color-mix(in oklab, var(--color-bailey-error) 10%, transparent)}}}.bailey-stop-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-copy-button{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;border-radius:2147483647px;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-copy-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-copy-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-copy-button:hover{color:var(--color-bailey-text)}}.bailey-copy-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-tooltip-content{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));background-color:var(--color-bailey-tooltip-bg,#000);color:var(--color-bailey-tooltip-text,#fff);border-radius:.25rem}.bailey-tooltip-arrow{fill:var(--color-bailey-tooltip-bg,#000)}.bailey-markdown-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.bailey-markdown-content th{background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);vertical-align:top}.bailey-markdown-content tr:nth-child(2n){background-color:var(--color-bailey-surface-muted)}.bailey-markdown-content{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.bailey-markdown-content>:first-child{margin-top:0}.bailey-markdown-content>:last-child{margin-bottom:0}.bailey-markdown-content p{margin-block:calc(var(--spacing) * 2)}.bailey-markdown-content h1{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h2{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h3{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h4,.bailey-markdown-content h5,.bailey-markdown-content h6{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content ul{margin-block:calc(var(--spacing) * 2);list-style-type:disc}:where(.bailey-markdown-content ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ul{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content ol{margin-block:calc(var(--spacing) * 2);list-style-type:decimal}:where(.bailey-markdown-content ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ol{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content a{color:var(--color-bailey-accent);text-underline-offset:2px;text-decoration-line:underline}.bailey-markdown-content code{background-color:var(--color-bailey-surface-muted);padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);border-radius:.25rem;font-size:.85em}.bailey-markdown-content pre{margin-block:calc(var(--spacing) * 2);border-radius:var(--radius-md);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 2);overflow-x:auto}.bailey-markdown-content pre code{background-color:#0000;padding:0}.bailey-markdown-content blockquote{margin-block:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 3);color:var(--color-bailey-text-secondary);font-style:italic}.bailey-markdown-content hr{margin-block:calc(var(--spacing) * 3);border-color:var(--color-bailey-border)}.bailey-trace-panel{margin-bottom:calc(var(--spacing) * 2)}.bailey-trace-toggle-row{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-trace-toggle{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-trace-toggle:hover{text-decoration-line:underline}}.bailey-trace-toggle-error{color:var(--color-bailey-error)}.bailey-trace-summary{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-trace-summary-error{color:var(--color-bailey-error)}.bailey-trace-body{margin-top:var(--spacing);max-height:calc(var(--spacing) * 80);overflow-y:auto}.bailey-trace-actions-row{justify-content:flex-end;gap:calc(var(--spacing) * 3);display:flex}.bailey-trace-copy-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}@media (hover:hover){.bailey-trace-copy-button:hover{text-decoration-line:none}}.bailey-trace-request-details{margin-bottom:var(--spacing);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding:calc(var(--spacing) * 2)}.bailey-trace-request-meta{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:block}.bailey-trace-rows{gap:var(--spacing);flex-direction:column;display:flex}.bailey-trace-row{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-row-header{align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.bailey-trace-row-time{color:var(--color-bailey-text-secondary)}.bailey-trace-row-gap{color:var(--color-gray-400)}.bailey-trace-row-summary{word-break:break-all}.bailey-trace-chip{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-semibold);font-size:.65rem;font-weight:var(--font-weight-semibold);border-radius:.25rem}.bailey-trace-chip-default{background-color:var(--color-gray-200);color:var(--color-gray-700)}.bailey-trace-chip-info{background-color:var(--color-blue-100);color:var(--color-blue-700)}.bailey-trace-chip-success{background-color:var(--color-green-100);color:var(--color-green-700)}.bailey-trace-chip-secondary{background-color:var(--color-purple-100);color:var(--color-purple-700)}.bailey-trace-chip-error{background-color:var(--color-red-100);color:var(--color-bailey-error)}.bailey-trace-disclosure{margin-top:var(--spacing)}.bailey-trace-disclosure-summary{cursor:pointer;color:var(--color-bailey-text-secondary);font-size:.7rem}.bailey-trace-disclosure-actions{margin-top:var(--spacing);justify-content:flex-end;display:flex}.bailey-trace-disclosure-content{margin-top:var(--spacing);max-height:calc(var(--spacing) * 48);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 1.5);word-break:break-all;white-space:pre-wrap;border-radius:.25rem;font-size:.7rem;overflow:auto}.bailey-trace-group{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bailey-trace-group-summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-group-failed{margin-left:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}", _e = t(void 0), ve = /:root\s*,\s*:host\s*\{/, ye = ".bailey-chat-panel{";
644
647
  function be(e) {
645
648
  let t = e.match(new RegExp(ve, "g"))?.length ?? 0;
646
649
  if (t !== 1) throw Error(`Expected exactly one ":root, :host {" rule in the compiled styles.css, found ${t}. Tailwind likely changed how @theme compiles — update this rewrite (and its sibling, scripts/scope-theme-vars.js) before shipping.`);
@@ -687,8 +690,8 @@ function Ee({ renderTable: t, renderChart: n } = {}) {
687
690
  children: n
688
691
  }),
689
692
  table: ({ node: n, children: r }) => {
690
- let i = n && B(n);
691
- if (i && V(i.rows) && t) {
693
+ let i = n && V(n);
694
+ if (i && H(i.rows) && t) {
692
695
  let n = i.rows.map((t) => t.map((t) => t.href && !e(t.href) ? { text: t.text } : t));
693
696
  return /* @__PURE__ */ m(p, { children: t({
694
697
  headers: i.headers,
@@ -779,6 +782,19 @@ function je({ className: e }) {
779
782
  });
780
783
  }
781
784
  function Me({ className: e }) {
785
+ return /* @__PURE__ */ m("svg", {
786
+ viewBox: "0 0 24 24",
787
+ fill: "none",
788
+ stroke: "currentColor",
789
+ strokeWidth: 2,
790
+ strokeLinecap: "round",
791
+ strokeLinejoin: "round",
792
+ className: e,
793
+ "aria-hidden": "true",
794
+ children: /* @__PURE__ */ m("path", { d: "m22.7 13.5-2-2-2 2M21 12a9 9 0 1 1-1.245-4.57M12 7v5l3 2" })
795
+ });
796
+ }
797
+ function Ne({ className: e }) {
782
798
  return /* @__PURE__ */ h("svg", {
783
799
  viewBox: "0 0 24 24",
784
800
  fill: "none",
@@ -797,8 +813,8 @@ function Me({ className: e }) {
797
813
  }
798
814
  //#endregion
799
815
  //#region src/ui/CopyMarkdownButton.tsx
800
- var Ne = 1500;
801
- function Pe({ markdown: e, className: t, ariaLabel: n = "copy response as markdown", tooltipDefaultText: r = "Copy as markdown", tooltipCopiedText: i = "Copied!" }) {
816
+ var Pe = 1500;
817
+ function Fe({ markdown: e, className: t, ariaLabel: n = "copy response as markdown", tooltipDefaultText: r = "Copy as markdown", tooltipCopiedText: i = "Copied!" }) {
802
818
  let [o, s] = l(!1), [u, d] = l(!1), p = c(null), g = c(null), _ = Te(g);
803
819
  return a(() => () => {
804
820
  p.current !== null && clearTimeout(p.current);
@@ -818,7 +834,7 @@ function Pe({ markdown: e, className: t, ariaLabel: n = "copy response as markdo
818
834
  } catch {
819
835
  return;
820
836
  }
821
- s(!0), p.current !== null && clearTimeout(p.current), p.current = setTimeout(() => s(!1), Ne);
837
+ s(!0), p.current !== null && clearTimeout(p.current), p.current = setTimeout(() => s(!1), Pe);
822
838
  },
823
839
  "aria-label": n,
824
840
  className: `bailey-copy-button${t ? ` ${t}` : ""}`,
@@ -837,20 +853,20 @@ function Pe({ markdown: e, className: t, ariaLabel: n = "copy response as markdo
837
853
  }
838
854
  //#endregion
839
855
  //#region src/ui/BaileyTracePanel.tsx
840
- async function Fe(e) {
856
+ async function Ie(e) {
841
857
  try {
842
858
  await navigator.clipboard.writeText(e);
843
859
  } catch {}
844
860
  }
845
- function Ie({ text: e, label: t = "Copy" }) {
861
+ function Le({ text: e, label: t = "Copy" }) {
846
862
  return /* @__PURE__ */ m("button", {
847
863
  type: "button",
848
- onClick: () => Fe(e),
864
+ onClick: () => Ie(e),
849
865
  className: "bailey-trace-copy-button",
850
866
  children: t
851
867
  });
852
868
  }
853
- function Le(e) {
869
+ function Re(e) {
854
870
  if (e.failed || e.kind === "error") return "bailey-trace-chip bailey-trace-chip-error";
855
871
  switch (e.kind) {
856
872
  case "tool_start": return "bailey-trace-chip bailey-trace-chip-info";
@@ -869,7 +885,7 @@ function $({ label: e, content: t, copyable: n }) {
869
885
  }),
870
886
  n && /* @__PURE__ */ m("div", {
871
887
  className: "bailey-trace-disclosure-actions",
872
- children: /* @__PURE__ */ m(Ie, { text: t })
888
+ children: /* @__PURE__ */ m(Le, { text: t })
873
889
  }),
874
890
  /* @__PURE__ */ m("pre", {
875
891
  className: "bailey-trace-disclosure-content",
@@ -878,7 +894,7 @@ function $({ label: e, content: t, copyable: n }) {
878
894
  ]
879
895
  });
880
896
  }
881
- function Re({ row: e }) {
897
+ function ze({ row: e }) {
882
898
  return /* @__PURE__ */ h("div", {
883
899
  className: "bailey-trace-row",
884
900
  children: [
@@ -895,7 +911,7 @@ function Re({ row: e }) {
895
911
  children: ue(e.gapMs)
896
912
  }),
897
913
  /* @__PURE__ */ m("span", {
898
- className: Le(e),
914
+ className: Re(e),
899
915
  children: e.label
900
916
  }),
901
917
  /* @__PURE__ */ m("span", {
@@ -919,13 +935,13 @@ function Re({ row: e }) {
919
935
  ]
920
936
  });
921
937
  }
922
- function ze(e, t) {
938
+ function Be(e, t) {
923
939
  if (e.chunkCount === 0) return "Streamed: no chunks received";
924
940
  if (e.chunkCount === 1 || e.firstChunkAt === null) return "Streamed: 1 chunk (not incremental)";
925
941
  let n = e.firstChunkAt - t, r = (e.lastChunkAt ?? e.firstChunkAt) - e.firstChunkAt;
926
942
  return `Streamed: ${e.chunkCount} chunks · first chunk after ${n}ms · spread over ${(r / 1e3).toFixed(1)}s`;
927
943
  }
928
- function Be({ request: e }) {
944
+ function Ve({ request: e }) {
929
945
  let t = s(() => JSON.stringify({
930
946
  model: e.model,
931
947
  instructions: e.systemPrompt,
@@ -949,7 +965,7 @@ function Be({ request: e }) {
949
965
  }),
950
966
  /* @__PURE__ */ m("span", {
951
967
  className: "bailey-trace-request-meta",
952
- children: ze(e.streamStats, e.sentAt)
968
+ children: Be(e.streamStats, e.sentAt)
953
969
  }),
954
970
  /* @__PURE__ */ m($, {
955
971
  label: `System prompt (${e.systemPrompt.length.toLocaleString()} chars)`,
@@ -974,14 +990,14 @@ function Be({ request: e }) {
974
990
  ]
975
991
  });
976
992
  }
977
- function Ve({ events: e, lastRequest: t, onClear: n }) {
993
+ function He({ events: e, lastRequest: t, onClear: n }) {
978
994
  let r = s(() => de(e), [e]), i = s(() => pe(r), [r]), a = s(() => JSON.stringify(e, null, 2), [e]);
979
995
  return /* @__PURE__ */ h("div", {
980
996
  className: "bailey-trace-body",
981
997
  children: [
982
998
  /* @__PURE__ */ h("div", {
983
999
  className: "bailey-trace-actions-row",
984
- children: [e.length > 0 && /* @__PURE__ */ m(Ie, {
1000
+ children: [e.length > 0 && /* @__PURE__ */ m(Le, {
985
1001
  text: a,
986
1002
  label: "Copy trace as JSON"
987
1003
  }), /* @__PURE__ */ m("button", {
@@ -991,15 +1007,15 @@ function Ve({ events: e, lastRequest: t, onClear: n }) {
991
1007
  children: "Clear"
992
1008
  })]
993
1009
  }),
994
- t && /* @__PURE__ */ m(Be, { request: t }),
1010
+ t && /* @__PURE__ */ m(Ve, { request: t }),
995
1011
  /* @__PURE__ */ m("div", {
996
1012
  className: "bailey-trace-rows",
997
1013
  children: i.map((e, t) => {
998
- if (e.type === "single") return /* @__PURE__ */ m(Re, { row: e.row }, e.row.key);
1014
+ if (e.type === "single") return /* @__PURE__ */ m(ze, { row: e.row }, e.row.key);
999
1015
  let n = e.rows.filter((e) => e.isToolStart).length;
1000
1016
  if (n <= 1) return /* @__PURE__ */ m("div", {
1001
1017
  className: "bailey-trace-rows",
1002
- children: e.rows.map((e) => /* @__PURE__ */ m(Re, { row: e }, e.key))
1018
+ children: e.rows.map((e) => /* @__PURE__ */ m(ze, { row: e }, e.key))
1003
1019
  }, `group-${t}`);
1004
1020
  let r = e.rows.filter((e) => e.failed).length;
1005
1021
  return /* @__PURE__ */ h("details", {
@@ -1021,7 +1037,7 @@ function Ve({ events: e, lastRequest: t, onClear: n }) {
1021
1037
  ]
1022
1038
  }), /* @__PURE__ */ m("div", {
1023
1039
  className: "bailey-trace-rows",
1024
- children: e.rows.map((e) => /* @__PURE__ */ m(Re, { row: e }, e.key))
1040
+ children: e.rows.map((e) => /* @__PURE__ */ m(ze, { row: e }, e.key))
1025
1041
  })]
1026
1042
  }, `group-${t}`);
1027
1043
  })
@@ -1029,7 +1045,7 @@ function Ve({ events: e, lastRequest: t, onClear: n }) {
1029
1045
  ]
1030
1046
  });
1031
1047
  }
1032
- function He({ events: e, lastRequest: t, onClear: n }) {
1048
+ function Ue({ events: e, lastRequest: t, onClear: n }) {
1033
1049
  let [r, i] = l(!1), a = s(() => me(e), [e]), o = s(() => fe(e), [e]);
1034
1050
  return e.length === 0 && !t ? null : /* @__PURE__ */ h("div", {
1035
1051
  className: "bailey-trace-panel",
@@ -1051,7 +1067,7 @@ function He({ events: e, lastRequest: t, onClear: n }) {
1051
1067
  className: a ? "bailey-trace-summary bailey-trace-summary-error" : "bailey-trace-summary",
1052
1068
  children: o
1053
1069
  })]
1054
- }), r && /* @__PURE__ */ m(Ve, {
1070
+ }), r && /* @__PURE__ */ m(He, {
1055
1071
  events: e,
1056
1072
  lastRequest: t,
1057
1073
  onClear: n
@@ -1060,9 +1076,10 @@ function He({ events: e, lastRequest: t, onClear: n }) {
1060
1076
  }
1061
1077
  //#endregion
1062
1078
  //#region src/ui/BaileyChatPanel.tsx
1063
- var Ue = "How can bailey AI help you today?", We = "Reply to bailey AI", Ge = {
1079
+ var We = "How can bailey AI help you today?", Ge = "Reply to bailey AI", Ke = {
1064
1080
  newChatButtonText: "New chat",
1065
1081
  newChatAriaLabel: "new chat",
1082
+ historyAriaLabel: "conversation history",
1066
1083
  suggestionsTitle: "Suggested for you",
1067
1084
  emptyStateMessage: "Ask Bailey a question to get started.",
1068
1085
  youLabel: "You",
@@ -1075,104 +1092,110 @@ var Ue = "How can bailey AI help you today?", We = "Reply to bailey AI", Ge = {
1075
1092
  copyButtonAriaLabel: "copy response as markdown",
1076
1093
  copyButtonTooltipDefault: "Copy as markdown",
1077
1094
  copyButtonTooltipCopied: "Copied!"
1078
- }, Ke = [d], qe = {
1095
+ }, qe = [d], Je = {
1079
1096
  ...Ee(),
1080
1097
  p: ({ children: e }) => /* @__PURE__ */ m(p, { children: e })
1081
- }, Je = n(function({ content: e, components: t }) {
1098
+ }, Ye = n(function({ content: e, components: t }) {
1082
1099
  return /* @__PURE__ */ m("div", {
1083
1100
  className: "bailey-markdown-content",
1084
1101
  children: /* @__PURE__ */ m(u, {
1085
- remarkPlugins: Ke,
1102
+ remarkPlugins: qe,
1086
1103
  components: t,
1087
1104
  skipHtml: !0,
1088
1105
  children: e
1089
1106
  })
1090
1107
  });
1091
1108
  });
1092
- function Ye(e, t, n) {
1109
+ function Xe(e, t, n) {
1093
1110
  if (e !== "streaming") return;
1094
1111
  let r = t.filter((e) => e.turnSentAt === n?.sentAt);
1095
1112
  if (r.length !== 0) return Y(r[r.length - 1]);
1096
1113
  }
1097
- function Xe(e) {
1114
+ function Ze(e) {
1098
1115
  let t = new Date(e), n = t.toDateString() === (/* @__PURE__ */ new Date()).toDateString(), r = t.toLocaleTimeString([], {
1099
1116
  hour: "numeric",
1100
1117
  minute: "2-digit"
1101
1118
  });
1102
1119
  return n ? `Today ${r}` : `${t.toLocaleDateString()} ${r}`;
1103
1120
  }
1104
- function Ze({ chat: e, placeholder: t, replyPlaceholder: n = We, emptyPlaceholder: r, suggestions: i, privacyNote: o, resolveActivityIcon: d, className: p, height: g, width: _, hideDeveloperDetails: v = !1, renderMessageActions: y, renderTable: b, renderChart: x, labels: S, formatMessageTime: C }) {
1105
- let { messages: w, traceEvents: T, lastRequest: E, status: D, error: O, send: ee, stop: k, retryLast: A, clearTrace: j, clearError: M, newChat: N } = e, [P, F] = l(""), I = {
1106
- ...Ge,
1107
- ...S
1108
- }, L = C ?? Xe, R = c(null), z = we(R), B = c(null), V = c(null), H = c(!0), te = s(() => Ee({
1109
- renderTable: b,
1110
- renderChart: x
1111
- }), [b, x]), U = s(() => Ye(D, T, E), [
1112
- D,
1113
- T,
1114
- E
1115
- ]), W = w.length === 0, G = t ?? (W ? r ?? Ue : n);
1121
+ function Qe({ chat: e, placeholder: t, replyPlaceholder: n = Ge, emptyPlaceholder: r, suggestions: i, onHistoryClick: o, privacyNote: d, resolveActivityIcon: p, className: g, height: _, width: v, hideDeveloperDetails: y = !1, renderMessageActions: b, renderTable: x, renderChart: S, labels: C, formatMessageTime: w }) {
1122
+ let { messages: T, traceEvents: E, lastRequest: D, status: O, error: k, send: A, stop: j, retryLast: M, clearTrace: N, clearError: P, newChat: F } = e, [I, L] = l(""), R = {
1123
+ ...Ke,
1124
+ ...C
1125
+ }, z = w ?? Ze, B = c(null), V = we(B), H = c(null), ee = c(null), U = c(!0), te = s(() => Ee({
1126
+ renderTable: x,
1127
+ renderChart: S
1128
+ }), [x, S]), W = s(() => Xe(O, E, D), [
1129
+ O,
1130
+ E,
1131
+ D
1132
+ ]), G = T.length === 0, K = t ?? (G ? r ?? We : n);
1116
1133
  a(() => {
1117
- let e = V.current;
1134
+ let e = ee.current;
1118
1135
  if (!e) return;
1119
1136
  let t = () => {
1120
1137
  let t = e.scrollHeight - e.scrollTop - e.clientHeight;
1121
- H.current = t < 60;
1138
+ U.current = t < 60;
1122
1139
  };
1123
1140
  return e.addEventListener("scroll", t, { passive: !0 }), () => e.removeEventListener("scroll", t);
1124
1141
  }, []), a(() => {
1125
- H.current && B.current?.scrollIntoView({
1126
- behavior: D === "streaming" ? "auto" : "smooth",
1142
+ U.current && H.current?.scrollIntoView({
1143
+ behavior: O === "streaming" ? "auto" : "smooth",
1127
1144
  block: "nearest"
1128
1145
  });
1129
- }, [w, D]);
1130
- let K = (e) => {
1131
- H.current = !0, ee(e);
1146
+ }, [T, O]);
1147
+ let ne = (e) => {
1148
+ U.current = !0, A(e);
1132
1149
  };
1133
1150
  return /* @__PURE__ */ m(_e.Provider, {
1134
- value: z,
1151
+ value: V,
1135
1152
  children: /* @__PURE__ */ m("div", {
1136
- ref: R,
1137
- className: `bailey-chat-panel${p ? ` ${p}` : ""}`,
1138
- style: g !== void 0 || _ !== void 0 ? {
1139
- height: g,
1140
- width: _
1153
+ ref: B,
1154
+ className: `bailey-chat-panel${g ? ` ${g}` : ""}`,
1155
+ style: _ !== void 0 || v !== void 0 ? {
1156
+ height: _,
1157
+ width: v
1141
1158
  } : void 0,
1142
1159
  children: /* @__PURE__ */ h("div", {
1143
1160
  className: "bailey-chat-panel-inner",
1144
1161
  children: [
1145
- /* @__PURE__ */ m("div", {
1162
+ /* @__PURE__ */ h("div", {
1146
1163
  className: "bailey-toolbar-row",
1147
- children: !W && /* @__PURE__ */ m("button", {
1164
+ children: [!G && /* @__PURE__ */ m("button", {
1148
1165
  type: "button",
1149
- onClick: N,
1150
- "aria-label": I.newChatAriaLabel,
1166
+ onClick: F,
1167
+ "aria-label": R.newChatAriaLabel,
1151
1168
  className: "bailey-new-chat-button",
1152
- children: I.newChatButtonText
1153
- })
1169
+ children: R.newChatButtonText
1170
+ }), o && /* @__PURE__ */ m("button", {
1171
+ type: "button",
1172
+ onClick: o,
1173
+ "aria-label": R.historyAriaLabel,
1174
+ className: "bailey-history-button",
1175
+ children: /* @__PURE__ */ m(Me, { className: "bailey-history-icon" })
1176
+ })]
1154
1177
  }),
1155
1178
  /* @__PURE__ */ h("div", {
1156
1179
  className: "bailey-chat-transcript",
1157
- ref: V,
1180
+ ref: ee,
1158
1181
  children: [
1159
- W && (i && i.length > 0 ? /* @__PURE__ */ h("div", {
1182
+ G && (i && i.length > 0 ? /* @__PURE__ */ h("div", {
1160
1183
  className: "bailey-suggestions",
1161
1184
  children: [/* @__PURE__ */ m("div", {
1162
1185
  className: "bailey-suggestions-title",
1163
- children: I.suggestionsTitle
1186
+ children: R.suggestionsTitle
1164
1187
  }), i.map((e, t) => /* @__PURE__ */ h("button", {
1165
1188
  type: "button",
1166
- onClick: () => K(e.value ?? e.label),
1189
+ onClick: () => ne(e.value ?? e.label),
1167
1190
  className: "bailey-suggestion-card",
1168
1191
  children: [/* @__PURE__ */ m("span", { children: e.label }), /* @__PURE__ */ m(ke, { className: "bailey-suggestion-icon" })]
1169
1192
  }, `${e.label}-${t}`))]
1170
1193
  }) : /* @__PURE__ */ m("div", {
1171
1194
  className: "bailey-empty-state",
1172
- children: I.emptyStateMessage
1195
+ children: R.emptyStateMessage
1173
1196
  })),
1174
- w.map((e, t) => {
1175
- let n = e.role === "assistant" && t === w.length - 1, r = D === "streaming" && n && e.content === "", i = e.role === "assistant" && !r ? he(T, e.createdAt) : [], a = i[i.length - 1];
1197
+ T.map((e, t) => {
1198
+ let n = e.role === "assistant" && t === T.length - 1, r = O === "streaming" && n && e.content === "", i = e.role === "assistant" && !r ? he(E, e.createdAt) : [], a = i[i.length - 1];
1176
1199
  return /* @__PURE__ */ m("div", {
1177
1200
  className: e.role === "user" ? "bailey-message-row bailey-message-row-user" : "bailey-message-row",
1178
1201
  children: e.role === "user" ? /* @__PURE__ */ h("div", {
@@ -1181,15 +1204,15 @@ function Ze({ chat: e, placeholder: t, replyPlaceholder: n = We, emptyPlaceholde
1181
1204
  className: "bailey-message-meta",
1182
1205
  children: [/* @__PURE__ */ m("span", {
1183
1206
  className: "bailey-message-meta-name",
1184
- children: I.youLabel
1185
- }), e.createdAt !== void 0 && /* @__PURE__ */ m("span", { children: L(e.createdAt) })]
1207
+ children: R.youLabel
1208
+ }), e.createdAt !== void 0 && /* @__PURE__ */ m("span", { children: z(e.createdAt) })]
1186
1209
  }), /* @__PURE__ */ m("div", {
1187
1210
  className: "bailey-user-bubble",
1188
1211
  children: e.content
1189
1212
  })]
1190
1213
  }) : r ? /* @__PURE__ */ m("div", {
1191
1214
  className: "bailey-thinking-hint",
1192
- children: U ?? I.thinkingHint
1215
+ children: W ?? R.thinkingHint
1193
1216
  }) : /* @__PURE__ */ h("div", {
1194
1217
  className: "bailey-assistant-message",
1195
1218
  children: [
@@ -1197,104 +1220,104 @@ function Ze({ chat: e, placeholder: t, replyPlaceholder: n = We, emptyPlaceholde
1197
1220
  className: "bailey-activity-line",
1198
1221
  children: [/* @__PURE__ */ m("span", {
1199
1222
  className: "bailey-activity-icon",
1200
- children: d?.(a.toolName) ?? /* @__PURE__ */ m(Me, {})
1223
+ children: p?.(a.toolName) ?? /* @__PURE__ */ m(Ne, {})
1201
1224
  }), /* @__PURE__ */ m("span", { children: a.text })]
1202
1225
  }),
1203
- /* @__PURE__ */ m(Je, {
1226
+ /* @__PURE__ */ m(Ye, {
1204
1227
  content: e.content,
1205
1228
  components: te
1206
1229
  }),
1207
- e.streaming && U && /* @__PURE__ */ m("div", {
1230
+ e.streaming && W && /* @__PURE__ */ m("div", {
1208
1231
  className: "bailey-streaming-hint",
1209
- children: U
1232
+ children: W
1210
1233
  }),
1211
1234
  !e.streaming && /* @__PURE__ */ h("div", {
1212
1235
  className: "bailey-message-actions",
1213
- children: [/* @__PURE__ */ m(Pe, {
1236
+ children: [/* @__PURE__ */ m(Fe, {
1214
1237
  markdown: e.content,
1215
- ariaLabel: I.copyButtonAriaLabel,
1216
- tooltipDefaultText: I.copyButtonTooltipDefault,
1217
- tooltipCopiedText: I.copyButtonTooltipCopied
1218
- }), y?.(e)]
1238
+ ariaLabel: R.copyButtonAriaLabel,
1239
+ tooltipDefaultText: R.copyButtonTooltipDefault,
1240
+ tooltipCopiedText: R.copyButtonTooltipCopied
1241
+ }), b?.(e)]
1219
1242
  })
1220
1243
  ]
1221
1244
  })
1222
1245
  }, e.id);
1223
1246
  }),
1224
- /* @__PURE__ */ m("div", { ref: B })
1247
+ /* @__PURE__ */ m("div", { ref: H })
1225
1248
  ]
1226
1249
  }),
1227
- O && /* @__PURE__ */ h("div", {
1250
+ k && /* @__PURE__ */ h("div", {
1228
1251
  className: "bailey-error-banner",
1229
1252
  role: "alert",
1230
- children: [/* @__PURE__ */ m("span", { children: O }), /* @__PURE__ */ h("div", {
1253
+ children: [/* @__PURE__ */ m("span", { children: k }), /* @__PURE__ */ h("div", {
1231
1254
  className: "bailey-error-actions",
1232
1255
  children: [/* @__PURE__ */ m("button", {
1233
1256
  type: "button",
1234
- onClick: A,
1257
+ onClick: M,
1235
1258
  className: "bailey-retry-button",
1236
- children: I.retryButtonText
1259
+ children: R.retryButtonText
1237
1260
  }), /* @__PURE__ */ m("button", {
1238
1261
  type: "button",
1239
- onClick: M,
1240
- "aria-label": I.dismissErrorAriaLabel,
1262
+ onClick: P,
1263
+ "aria-label": R.dismissErrorAriaLabel,
1241
1264
  className: "bailey-dismiss-button",
1242
1265
  children: "✕"
1243
1266
  })]
1244
1267
  })]
1245
1268
  }),
1246
- !v && /* @__PURE__ */ m(He, {
1247
- events: T,
1248
- lastRequest: E,
1249
- onClear: j
1269
+ !y && /* @__PURE__ */ m(Ue, {
1270
+ events: E,
1271
+ lastRequest: D,
1272
+ onClear: N
1250
1273
  }),
1251
1274
  /* @__PURE__ */ h("form", {
1252
1275
  onSubmit: (e) => {
1253
- e.preventDefault(), !(!P.trim() || D === "streaming") && (K(P), F(""));
1276
+ e.preventDefault(), !(!I.trim() || O === "streaming") && (ne(I), L(""));
1254
1277
  },
1255
1278
  className: "bailey-input-row",
1256
1279
  children: [/* @__PURE__ */ m("input", {
1257
1280
  type: "text",
1258
- placeholder: G,
1259
- "aria-label": G,
1260
- value: P,
1261
- onChange: (e) => F(e.target.value),
1262
- disabled: D === "streaming",
1281
+ placeholder: K,
1282
+ "aria-label": K,
1283
+ value: I,
1284
+ onChange: (e) => L(e.target.value),
1285
+ disabled: O === "streaming",
1263
1286
  className: "bailey-input"
1264
- }), D === "streaming" ? /* @__PURE__ */ m(f.Provider, {
1287
+ }), O === "streaming" ? /* @__PURE__ */ m(f.Provider, {
1265
1288
  delayDuration: 200,
1266
1289
  children: /* @__PURE__ */ h(f.Root, { children: [/* @__PURE__ */ m(f.Trigger, {
1267
1290
  asChild: !0,
1268
1291
  children: /* @__PURE__ */ m("button", {
1269
1292
  type: "button",
1270
- onClick: k,
1271
- "aria-label": I.stopAriaLabel,
1293
+ onClick: j,
1294
+ "aria-label": R.stopAriaLabel,
1272
1295
  className: "bailey-stop-button",
1273
1296
  children: /* @__PURE__ */ m(Oe, { className: "bailey-stop-icon" })
1274
1297
  })
1275
1298
  }), /* @__PURE__ */ m(f.Portal, {
1276
- container: z instanceof ShadowRoot ? z : void 0,
1299
+ container: V instanceof ShadowRoot ? V : void 0,
1277
1300
  children: /* @__PURE__ */ h(f.Content, {
1278
1301
  side: "top",
1279
1302
  className: "bailey-tooltip-content",
1280
- children: [I.stopButtonText, /* @__PURE__ */ m(f.Arrow, { className: "bailey-tooltip-arrow" })]
1303
+ children: [R.stopButtonText, /* @__PURE__ */ m(f.Arrow, { className: "bailey-tooltip-arrow" })]
1281
1304
  })
1282
1305
  })] })
1283
1306
  }) : /* @__PURE__ */ m("button", {
1284
1307
  type: "submit",
1285
- "aria-label": I.sendAriaLabel,
1286
- disabled: !P.trim(),
1308
+ "aria-label": R.sendAriaLabel,
1309
+ disabled: !I.trim(),
1287
1310
  className: "bailey-send-button",
1288
1311
  children: /* @__PURE__ */ m(De, { className: "bailey-send-icon" })
1289
1312
  })]
1290
1313
  }),
1291
- (W || o?.alwaysVisible) && o && /* @__PURE__ */ m("div", {
1314
+ (G || d?.alwaysVisible) && d && /* @__PURE__ */ m("div", {
1292
1315
  className: "bailey-privacy-note",
1293
1316
  children: /* @__PURE__ */ m(u, {
1294
- remarkPlugins: Ke,
1295
- components: qe,
1317
+ remarkPlugins: qe,
1318
+ components: Je,
1296
1319
  skipHtml: !0,
1297
- children: o.markdown
1320
+ children: d.markdown
1298
1321
  })
1299
1322
  })
1300
1323
  ]
@@ -1304,6 +1327,6 @@ function Ze({ chat: e, placeholder: t, replyPlaceholder: n = We, emptyPlaceholde
1304
1327
  }
1305
1328
  //#endregion
1306
1329
  //#region src/index.ts
1307
- var Qe = "0.3.1-pre.2";
1330
+ var $e = "0.3.1-pre.2";
1308
1331
  //#endregion
1309
- export { Me as ActivityIcon, ke as ArrowUpRightIcon, Qe as BAILEYAI_CHAT_UI_VERSION, H as BAILEY_CHART_PROMPT_FRAGMENT, P as BAILEY_TABLE_GRID_ROW_THRESHOLD, Ze as BaileyChatPanel, He as BaileyTracePanel, Pe as CopyMarkdownButton, De as HeartIcon, ie as TRACE_KIND_LABEL, Ee as createBaileyMarkdownComponents, C as extractPseudoToolCalls, B as extractTableData, ue as formatTraceGap, le as formatTraceTime, me as hasTraceFailure, e as isSafeMarkdownUrl, A as joinInstructions, re as parseBaileyChartSpec, T as parseSseFrames, N as resolveToolCall, V as shouldUseGrid, he as toActivityLines, de as toTraceRows, pe as toTraceSegments, oe as traceEventArgsDetail, Y as traceEventHint, se as traceEventOutputDetail, ce as traceEventRawDetail, ae as traceEventSummary, J as traceEventToolName, fe as traceSummaryLine, k as useBaileyChat };
1332
+ export { Ne as ActivityIcon, ke as ArrowUpRightIcon, $e as BAILEYAI_CHAT_UI_VERSION, ee as BAILEY_CHART_PROMPT_FRAGMENT, F as BAILEY_TABLE_GRID_ROW_THRESHOLD, Qe as BaileyChatPanel, Ue as BaileyTracePanel, Fe as CopyMarkdownButton, De as HeartIcon, ie as TRACE_KIND_LABEL, Ee as createBaileyMarkdownComponents, C as extractPseudoToolCalls, V as extractTableData, ue as formatTraceGap, le as formatTraceTime, me as hasTraceFailure, e as isSafeMarkdownUrl, j as joinInstructions, re as parseBaileyChartSpec, T as parseSseFrames, P as resolveToolCall, H as shouldUseGrid, he as toActivityLines, de as toTraceRows, pe as toTraceSegments, oe as traceEventArgsDetail, Y as traceEventHint, se as traceEventOutputDetail, ce as traceEventRawDetail, ae as traceEventSummary, J as traceEventToolName, fe as traceSummaryLine, A as useBaileyChat };