@tanstack/ai-devtools-core 0.3.32 → 0.3.33

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.
@@ -2681,13 +2681,14 @@ var AIProvider = (props) => {
2681
2681
  });
2682
2682
  }
2683
2683
  function queueChunk(conversationId, chunk) {
2684
- if (!pendingConversationChunks.has(conversationId)) {
2685
- pendingConversationChunks.set(conversationId, {
2684
+ let pending = pendingConversationChunks.get(conversationId);
2685
+ if (!pending) {
2686
+ pending = {
2686
2687
  chunks: [],
2687
2688
  newChunkCount: 0
2688
- });
2689
+ };
2690
+ pendingConversationChunks.set(conversationId, pending);
2689
2691
  }
2690
- const pending = pendingConversationChunks.get(conversationId);
2691
2692
  const lastPending = pending.chunks[pending.chunks.length - 1];
2692
2693
  if (lastPending && lastPending.type === chunk.type && isMergeableChunkType(chunk.type) && lastPending.messageId === chunk.messageId) {
2693
2694
  lastPending.content = chunk.content || lastPending.content;
@@ -2700,17 +2701,19 @@ var AIProvider = (props) => {
2700
2701
  scheduleBatchFlush();
2701
2702
  }
2702
2703
  function queueMessageChunk(conversationId, messageIndex, chunk) {
2703
- if (!pendingMessageChunks.has(conversationId)) {
2704
- pendingMessageChunks.set(conversationId, /* @__PURE__ */ new Map());
2705
- }
2706
- const messageMap = pendingMessageChunks.get(conversationId);
2707
- if (!messageMap.has(messageIndex)) {
2708
- messageMap.set(messageIndex, {
2704
+ let messageMap = pendingMessageChunks.get(conversationId);
2705
+ if (!messageMap) {
2706
+ messageMap = /* @__PURE__ */ new Map();
2707
+ pendingMessageChunks.set(conversationId, messageMap);
2708
+ }
2709
+ let pending = messageMap.get(messageIndex);
2710
+ if (!pending) {
2711
+ pending = {
2709
2712
  chunks: [],
2710
2713
  newChunkCount: 0
2711
- });
2714
+ };
2715
+ messageMap.set(messageIndex, pending);
2712
2716
  }
2713
- const pending = messageMap.get(messageIndex);
2714
2717
  const lastPending = pending.chunks[pending.chunks.length - 1];
2715
2718
  if (lastPending && lastPending.type === chunk.type && isMergeableChunkType(chunk.type) && lastPending.messageId === chunk.messageId) {
2716
2719
  lastPending.content = chunk.content || lastPending.content;
@@ -2966,8 +2969,7 @@ var AIProvider = (props) => {
2966
2969
  content: part.content
2967
2970
  };
2968
2971
  }
2969
- if (part.type === "image" || part.type === "audio" || part.type === "video" || // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
2970
- part.type === "document") {
2972
+ if (part.type === "image" || part.type === "audio" || part.type === "video") {
2971
2973
  return {
2972
2974
  type: part.type,
2973
2975
  source: part.source,
@@ -4104,6 +4106,9 @@ var getChunkTypeColor = (type) => {
4104
4106
  case "approval":
4105
4107
  return "#f59e0b";
4106
4108
  // orange/amber
4109
+ case "thinking":
4110
+ return "#a855f7";
4111
+ // violet
4107
4112
  default:
4108
4113
  return "#6b7280";
4109
4114
  }
@@ -4207,8 +4212,9 @@ var ConversationHeader = (props) => {
4207
4212
  const conv = () => props.conversation;
4208
4213
  const iterationCount = () => conv().iterationCount ?? conv().iterations.length;
4209
4214
  const totalDuration = () => {
4210
- if (!conv().completedAt) return void 0;
4211
- return conv().completedAt - conv().startedAt;
4215
+ const completedAt = conv().completedAt;
4216
+ if (!completedAt) return void 0;
4217
+ return completedAt - conv().startedAt;
4212
4218
  };
4213
4219
  const totalMessages = () => conv().messages.length;
4214
4220
  const totalToolCalls = () => {
@@ -4417,7 +4423,7 @@ var ToolCallDisplay = (props) => {
4417
4423
  };
4418
4424
  return ssr(_tmpl$53, `${escape(styles().conversationDetails.toolCall, true)} ${tool().approvalRequired ? escape(styles().conversationDetails.toolCallApproval, true) : escape(styles().conversationDetails.toolCallNormal, true)}`, ssrAttribute("class", escape(styles().conversationDetails.toolCallHeader, true), false), `${escape(styles().conversationDetails.toolCallName, true)} ${tool().approvalRequired ? escape(styles().conversationDetails.toolCallNameApproval, true) : escape(styles().conversationDetails.toolCallNameNormal, true)}`, tool().approvalRequired ? "\u26A0\uFE0F" : "\u{1F527}", escape(tool().name), `${escape(styles().conversationDetails.toolStateBadge, true)} ${tool().approvalRequired ? escape(styles().conversationDetails.toolStateBadgeApproval, true) : escape(styles().conversationDetails.toolStateBadgeNormal, true)}`, escape(tool().state), escape(createComponent(Show, {
4419
4425
  get when() {
4420
- return tool().duration !== void 0 && tool().duration > 0;
4426
+ return (tool().duration ?? 0) > 0;
4421
4427
  },
4422
4428
  get children() {
4423
4429
  return ssr(_tmpl$9, ssrAttribute("class", escape(styles().conversationDetails.durationBadge, true), false), escape(formatDuration(tool().duration)));
@@ -4732,21 +4738,19 @@ var MessageCard = (props) => {
4732
4738
  }
4733
4739
  })), escape(createComponent(Show, {
4734
4740
  get when() {
4735
- return msg().role === "tool" && parseJsonContent() !== null;
4741
+ return msg().role === "tool" && parseJsonContent();
4736
4742
  },
4737
4743
  get fallback() {
4738
4744
  return ssr(_tmpl$55, ssrAttribute("class", escape(styles().conversationDetails.messageContent, true), false), escape(msg().content));
4739
4745
  },
4740
- get children() {
4741
- return ssr(_tmpl$55, ssrAttribute("class", escape(styles().conversationDetails.toolJsonContainer, true), false), escape(createComponent(JsonTree, {
4742
- get value() {
4743
- return parseJsonContent();
4744
- }
4745
- })));
4746
- }
4746
+ children: (parsed) => ssr(_tmpl$55, ssrAttribute("class", escape(styles().conversationDetails.toolJsonContainer, true), false), escape(createComponent(JsonTree, {
4747
+ get value() {
4748
+ return parsed();
4749
+ }
4750
+ })))
4747
4751
  })), escape(createComponent(Show, {
4748
4752
  get when() {
4749
- return msg().toolCalls && msg().toolCalls.length > 0;
4753
+ return msg().toolCalls?.length;
4750
4754
  },
4751
4755
  get children() {
4752
4756
  return ssr(_tmpl$55, ssrAttribute("class", escape(styles().conversationDetails.toolCallsContainer, true), false), escape(createComponent(For, {
@@ -4760,15 +4764,13 @@ var MessageCard = (props) => {
4760
4764
  }
4761
4765
  })), escape(createComponent(Show, {
4762
4766
  get when() {
4763
- return msg().chunks && msg().chunks.length > 0;
4767
+ return msg().chunks?.length ? msg().chunks : null;
4764
4768
  },
4765
- get children() {
4766
- return createComponent(ChunksCollapsible, {
4767
- get chunks() {
4768
- return msg().chunks;
4769
- }
4770
- });
4771
- }
4769
+ children: (chunks) => createComponent(ChunksCollapsible, {
4770
+ get chunks() {
4771
+ return chunks();
4772
+ }
4773
+ })
4772
4774
  })));
4773
4775
  };
4774
4776
 
@@ -4862,10 +4864,12 @@ var ChunksTab = (props) => {
4862
4864
  const groups = /* @__PURE__ */ new Map();
4863
4865
  props.chunks.forEach((chunk) => {
4864
4866
  const key = chunk.messageId || "no-message-id";
4865
- if (!groups.has(key)) {
4866
- groups.set(key, []);
4867
+ let group = groups.get(key);
4868
+ if (!group) {
4869
+ group = [];
4870
+ groups.set(key, group);
4867
4871
  }
4868
- groups.get(key).push(chunk);
4872
+ group.push(chunk);
4869
4873
  });
4870
4874
  return Array.from(groups.entries());
4871
4875
  };
@@ -4975,13 +4979,13 @@ var _tmpl$132 = ["<span", ">", " middleware transform", "</span>"];
4975
4979
  var _tmpl$142 = ['<span class="', '">', "</span>"];
4976
4980
  var _tmpl$152 = ['<span class="', '" title="', '">\u{1F527} ', "</span>"];
4977
4981
  var _tmpl$162 = ['<span class="', '"', ">\u23F1\uFE0F ", "</span>"];
4978
- var _tmpl$172 = ['<span class="', '" title="', '">\u{1F3AF} ', "</span>"];
4979
- var _tmpl$182 = ['<span class="', '">\u27F3 streaming</span>'];
4980
- var _tmpl$192 = ["<div", "><span", ">Config Changes</span><div", ">", "</div></div>"];
4981
- var _tmpl$20 = ["<div", "><span", ">Tools</span><div", ">", "</div></div>"];
4982
- var _tmpl$21 = ["<div", "><span", ">System Prompts (", ")</span>", "</div>"];
4983
- var _tmpl$222 = ["<div", "><span", ">Model Options</span><div", ">", "</div></div>"];
4984
- var _tmpl$232 = ["<div", ' style="', '"><div class="', '"><div', "><span", ">", "</span><div", ">", "", "", "", "", "", "", "</div></div><div", ">", "", "", "", "", '</div><span class="', '">\u25B6</span></div><div class="', '"><div', "><div>", "", "", "", '</div></div></div><div class="', '"><div', ">", "</div></div></div>"];
4982
+ var _tmpl$172 = ['<span class="', '">\u27F3 streaming</span>'];
4983
+ var _tmpl$182 = ["<div", "><span", ">Config Changes</span><div", ">", "</div></div>"];
4984
+ var _tmpl$192 = ["<div", "><span", ">Tools</span><div", ">", "</div></div>"];
4985
+ var _tmpl$20 = ["<div", "><span", ">System Prompts (", ")</span>", "</div>"];
4986
+ var _tmpl$21 = ["<div", "><span", ">Model Options</span><div", ">", "</div></div>"];
4987
+ var _tmpl$222 = ["<div", ' style="', '"><div class="', '"><div', "><span", ">", "</span><div", ">", "", "", "", "", "", "", "</div></div><div", ">", "", "", "", "", '</div><span class="', '">\u25B6</span></div><div class="', '"><div', "><div>", "", "", "", '</div></div></div><div class="', '"><div', ">", "</div></div></div>"];
4988
+ var _tmpl$232 = ['<span class="', '" title="', '">\u{1F3AF} ', "</span>"];
4985
4989
  var _tmpl$242 = ["<div", "><span", ">", ":</span><span", ">", "</span><span", ">\u2192</span><span", ">", "</span></div>"];
4986
4990
  var _tmpl$252 = ["<span", ">", "<span", ">", "</span></span>"];
4987
4991
  function getIterationLabel(iter, displayIndex) {
@@ -5058,7 +5062,10 @@ var MiddlewareStep = (props) => {
5058
5062
  if (ev().hookName === "onBeforeToolCall" && ev().hasTransform) return "DECISION";
5059
5063
  return null;
5060
5064
  };
5061
- const hasChanges = () => ev().configChanges && Object.keys(ev().configChanges).length > 0;
5065
+ const hasChanges = () => {
5066
+ const changes = ev().configChanges;
5067
+ return changes && Object.keys(changes).length > 0;
5068
+ };
5062
5069
  return [ssr(_tmpl$310, ssrAttribute("class", escape(s().step, true), false), `${escape(s().stepPrefix, true)} ${escape(s().stepPrefixMiddleware, true)}`, `${escape(s().mwBadge, true)} ${escape(badgeClass(), true)}`, escape(ev().middlewareName), ssrAttribute("class", escape(s().mwHook, true), false), escape(ev().hookName), escape(createComponent(Show, {
5063
5070
  get when() {
5064
5071
  return ev().duration !== void 0;
@@ -5226,8 +5233,9 @@ var IterationCard = (props) => {
5226
5233
  const isCompleted = () => !!iter().completedAt && iter().finishReason !== "error";
5227
5234
  const isError = () => iter().finishReason === "error";
5228
5235
  const duration = () => {
5229
- if (!iter().completedAt) return void 0;
5230
- return iter().completedAt - iter().startedAt;
5236
+ const completedAt = iter().completedAt;
5237
+ if (!completedAt) return void 0;
5238
+ return completedAt - iter().startedAt;
5231
5239
  };
5232
5240
  const label = () => getIterationLabel(iter(), props.index);
5233
5241
  const steps = createMemo(() => buildSteps(iter(), props.messages));
@@ -5244,8 +5252,9 @@ var IterationCard = (props) => {
5244
5252
  };
5245
5253
  });
5246
5254
  const finishLabel = () => {
5247
- if (!iter().finishReason) return null;
5248
- switch (iter().finishReason) {
5255
+ const reason = iter().finishReason;
5256
+ if (!reason) return null;
5257
+ switch (reason) {
5249
5258
  case "stop":
5250
5259
  return "completed";
5251
5260
  case "tool_calls":
@@ -5255,7 +5264,7 @@ var IterationCard = (props) => {
5255
5264
  case "length":
5256
5265
  return "max length";
5257
5266
  default:
5258
- return iter().finishReason;
5267
+ return reason;
5259
5268
  }
5260
5269
  };
5261
5270
  const headerAccent = () => {
@@ -5265,9 +5274,13 @@ var IterationCard = (props) => {
5265
5274
  return "";
5266
5275
  };
5267
5276
  const configSubtitle = () => {
5277
+ const {
5278
+ model,
5279
+ provider
5280
+ } = iter();
5268
5281
  const parts = [];
5269
- if (iter().model) parts.push(iter().model);
5270
- if (iter().provider) parts.push(iter().provider);
5282
+ if (model) parts.push(model);
5283
+ if (provider) parts.push(provider);
5271
5284
  return parts.length > 0 ? parts.join(" \xB7 ") : null;
5272
5285
  };
5273
5286
  const toolNames = () => iter().toolNames || [];
@@ -5334,7 +5347,7 @@ var IterationCard = (props) => {
5334
5347
  return diffs;
5335
5348
  };
5336
5349
  const hasExpandableConfig = () => toolNames().length > 0 || systemPrompts().length > 0 || hasModelOptions();
5337
- return ssr(_tmpl$232, ssrAttribute("class", escape(s().iterCard, true), false), ssrStyleProperty("animation-delay:", `${escape(props.index, true) * 60}ms`), `${escape(s().iterCardHeader, true)} ${escape(headerAccent(), true)}`, ssrAttribute("class", escape(s().cardHeaderContent, true), false), ssrAttribute("class", escape(s().iterCardTitle, true), false), escape(label()), ssrAttribute("class", escape(s().cardSubtitle, true), false), escape(createComponent(Show, {
5350
+ return ssr(_tmpl$222, ssrAttribute("class", escape(s().iterCard, true), false), ssrStyleProperty("animation-delay:", `${escape(props.index, true) * 60}ms`), `${escape(s().iterCardHeader, true)} ${escape(headerAccent(), true)}`, ssrAttribute("class", escape(s().cardHeaderContent, true), false), ssrAttribute("class", escape(s().iterCardTitle, true), false), escape(label()), ssrAttribute("class", escape(s().cardSubtitle, true), false), escape(createComponent(Show, {
5338
5351
  get when() {
5339
5352
  return configSubtitle();
5340
5353
  },
@@ -5408,22 +5421,20 @@ var IterationCard = (props) => {
5408
5421
  get when() {
5409
5422
  return deltaUsage();
5410
5423
  },
5411
- get children() {
5412
- return ssr(_tmpl$172, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, `Prompt: ${escape(deltaUsage().promptTokens.toLocaleString(), true)} | Completion: ${escape(deltaUsage().completionTokens.toLocaleString(), true)}`, escape(deltaUsage().totalTokens.toLocaleString()));
5413
- }
5424
+ children: (usage) => ssr(_tmpl$232, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, `Prompt: ${escape(usage().promptTokens.toLocaleString(), true)} | Completion: ${escape(usage().completionTokens.toLocaleString(), true)}`, escape(usage().totalTokens.toLocaleString()))
5414
5425
  })), escape(createComponent(Show, {
5415
5426
  get when() {
5416
5427
  return isActive();
5417
5428
  },
5418
5429
  get children() {
5419
- return ssr(_tmpl$182, `${escape(s().badge, true)} ${escape(s().badgeDuration, true)}`);
5430
+ return ssr(_tmpl$172, `${escape(s().badge, true)} ${escape(s().badgeDuration, true)}`);
5420
5431
  }
5421
5432
  })), `${escape(s().chevron, true)} ${isOpen() ? escape(s().chevronOpen, true) : ""}`, `${escape(s().configPanelWrapper, true)} ${configExpanded() ? escape(s().configPanelWrapperOpen, true) : ""}`, ssrAttribute("class", escape(s().configPanel, true), false), escape(createComponent(Show, {
5422
5433
  get when() {
5423
5434
  return hasConfigChanged();
5424
5435
  },
5425
5436
  get children() {
5426
- return ssr(_tmpl$192, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configDiffSection, true), false), escape(createComponent(For, {
5437
+ return ssr(_tmpl$182, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configDiffSection, true), false), escape(createComponent(For, {
5427
5438
  get each() {
5428
5439
  return configDiffs();
5429
5440
  },
@@ -5435,7 +5446,7 @@ var IterationCard = (props) => {
5435
5446
  return toolNames().length > 0;
5436
5447
  },
5437
5448
  get children() {
5438
- return ssr(_tmpl$20, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configToolsList, true), false), escape(createComponent(For, {
5449
+ return ssr(_tmpl$192, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configToolsList, true), false), escape(createComponent(For, {
5439
5450
  get each() {
5440
5451
  return toolNames();
5441
5452
  },
@@ -5447,7 +5458,7 @@ var IterationCard = (props) => {
5447
5458
  return systemPrompts().length > 0;
5448
5459
  },
5449
5460
  get children() {
5450
- return ssr(_tmpl$21, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), escape(systemPrompts().length), escape(createComponent(For, {
5461
+ return ssr(_tmpl$20, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), escape(systemPrompts().length), escape(createComponent(For, {
5451
5462
  get each() {
5452
5463
  return systemPrompts();
5453
5464
  },
@@ -5464,7 +5475,7 @@ var IterationCard = (props) => {
5464
5475
  return hasModelOptions();
5465
5476
  },
5466
5477
  get children() {
5467
- return ssr(_tmpl$222, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configJsonTreeContainer, true), false), escape(createComponent(JsonTree, {
5478
+ return ssr(_tmpl$21, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configJsonTreeContainer, true), false), escape(createComponent(JsonTree, {
5468
5479
  get value() {
5469
5480
  return modelOptions();
5470
5481
  },
@@ -5552,12 +5563,12 @@ var _tmpl$94 = ["<span", ">", " middleware transform", "</span>"];
5552
5563
  var _tmpl$03 = ['<span class="', '" title="', '">\u{1F504} ', "</span>"];
5553
5564
  var _tmpl$111 = ['<span class="', '" title="', '">\u{1F527} ', "</span>"];
5554
5565
  var _tmpl$103 = ['<span class="', '"', ">\u23F1\uFE0F ", "</span>"];
5555
- var _tmpl$113 = ['<span class="', '" title="', '">\u{1F3AF} ', "</span>"];
5556
- var _tmpl$123 = ['<span class="', '">\u27F3 streaming</span>'];
5557
- var _tmpl$133 = ["<div", "><span", ">Tools</span><div", ">", "</div></div>"];
5558
- var _tmpl$143 = ["<div", "><span", ">System Prompts (", ")</span>", "</div>"];
5559
- var _tmpl$153 = ["<div", "><span", ">Model Options</span><div", ">", "</div></div>"];
5560
- var _tmpl$163 = ['<div class="', '"><div', "><div", ">U</div><div", "><span", ">", "</span><div", ">", "", "", "", "", "", "</div></div><div", ">", "", "", "", "", '</div><span class="', '">\u25B6</span></div><div class="', '"><div', "><div>", "", "", '</div></div></div><div class="', '"><div', "><div", ">", "</div></div></div></div>"];
5566
+ var _tmpl$113 = ['<span class="', '">\u27F3 streaming</span>'];
5567
+ var _tmpl$123 = ["<div", "><span", ">Tools</span><div", ">", "</div></div>"];
5568
+ var _tmpl$133 = ["<div", "><span", ">System Prompts (", ")</span>", "</div>"];
5569
+ var _tmpl$143 = ["<div", "><span", ">Model Options</span><div", ">", "</div></div>"];
5570
+ var _tmpl$153 = ['<div class="', '"><div', "><div", ">U</div><div", "><span", ">", "</span><div", ">", "", "", "", "", "", "</div></div><div", ">", "", "", "", "", '</div><span class="', '">\u25B6</span></div><div class="', '"><div', "><div>", "", "", '</div></div></div><div class="', '"><div', "><div", ">", "</div></div></div></div>"];
5571
+ var _tmpl$163 = ['<span class="', '" title="', '">\u{1F3AF} ', "</span>"];
5561
5572
  var _tmpl$173 = ["<span", ">", "<span", ">", "</span></span>"];
5562
5573
  var IterationTimeline = (props) => {
5563
5574
  const styles = useStyles();
@@ -5573,8 +5584,7 @@ var IterationTimeline = (props) => {
5573
5584
  }
5574
5585
  const result = [];
5575
5586
  const sortedUsers = [...userMessages].sort((a, b) => a.timestamp - b.timestamp);
5576
- for (let u = 0; u < sortedUsers.length; u++) {
5577
- const currentUser = sortedUsers[u];
5587
+ for (const [u, currentUser] of sortedUsers.entries()) {
5578
5588
  const nextUser = sortedUsers[u + 1];
5579
5589
  const groupIters = iters.filter((it) => {
5580
5590
  if (it.startedAt < currentUser.timestamp) return false;
@@ -5588,8 +5598,9 @@ var IterationTimeline = (props) => {
5588
5598
  });
5589
5599
  }
5590
5600
  }
5591
- if (sortedUsers[0]) {
5592
- const earlyIters = iters.filter((it) => it.startedAt < sortedUsers[0].timestamp);
5601
+ const firstUser = sortedUsers[0];
5602
+ if (firstUser) {
5603
+ const earlyIters = iters.filter((it) => it.startedAt < firstUser.timestamp);
5593
5604
  if (earlyIters.length > 0) {
5594
5605
  result.unshift({
5595
5606
  userMessage: null,
@@ -5749,7 +5760,7 @@ var UserMessageGroupCard = (props) => {
5749
5760
  return count;
5750
5761
  });
5751
5762
  const hasExpandableConfig = () => toolNames().length > 0 || systemPrompts().length > 0 || hasModelOptions();
5752
- return ssr(_tmpl$163, `${escape(s().card, true)} ${escape(groupAccentClass(), true)}`, ssrAttribute("class", escape(s().cardHeader, true), false), ssrAttribute("class", escape(s().userBubble, true), false), ssrAttribute("class", escape(s().cardHeaderContent, true), false), ssrAttribute("class", escape(s().cardHeaderLabel, true), false), escape(userContent()), ssrAttribute("class", escape(s().cardSubtitle, true), false), escape(createComponent(Show, {
5763
+ return ssr(_tmpl$153, `${escape(s().card, true)} ${escape(groupAccentClass(), true)}`, ssrAttribute("class", escape(s().cardHeader, true), false), ssrAttribute("class", escape(s().userBubble, true), false), ssrAttribute("class", escape(s().cardHeaderContent, true), false), ssrAttribute("class", escape(s().cardHeaderLabel, true), false), escape(userContent()), ssrAttribute("class", escape(s().cardSubtitle, true), false), escape(createComponent(Show, {
5753
5764
  get when() {
5754
5765
  return configSubtitle();
5755
5766
  },
@@ -5816,22 +5827,20 @@ var UserMessageGroupCard = (props) => {
5816
5827
  get when() {
5817
5828
  return totalUsage();
5818
5829
  },
5819
- get children() {
5820
- return ssr(_tmpl$113, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, `Prompt: ${escape(totalUsage().promptTokens.toLocaleString(), true)} | Completion: ${escape(totalUsage().completionTokens.toLocaleString(), true)}`, escape(totalUsage().totalTokens.toLocaleString()));
5821
- }
5830
+ children: (usage) => ssr(_tmpl$163, `${escape(s().badge, true)} ${escape(s().badgeUsage, true)}`, `Prompt: ${escape(usage().promptTokens.toLocaleString(), true)} | Completion: ${escape(usage().completionTokens.toLocaleString(), true)}`, escape(usage().totalTokens.toLocaleString()))
5822
5831
  })), escape(createComponent(Show, {
5823
5832
  get when() {
5824
5833
  return isActive();
5825
5834
  },
5826
5835
  get children() {
5827
- return ssr(_tmpl$123, `${escape(s().badge, true)} ${escape(s().badgeDuration, true)}`);
5836
+ return ssr(_tmpl$113, `${escape(s().badge, true)} ${escape(s().badgeDuration, true)}`);
5828
5837
  }
5829
5838
  })), `${escape(s().chevron, true)} ${isOpen() ? escape(s().chevronOpen, true) : ""}`, `${escape(s().configPanelWrapper, true)} ${configExpanded() ? escape(s().configPanelWrapperOpen, true) : ""}`, ssrAttribute("class", escape(s().configPanel, true), false), escape(createComponent(Show, {
5830
5839
  get when() {
5831
5840
  return toolNames().length > 0;
5832
5841
  },
5833
5842
  get children() {
5834
- return ssr(_tmpl$133, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configToolsList, true), false), escape(createComponent(For, {
5843
+ return ssr(_tmpl$123, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configToolsList, true), false), escape(createComponent(For, {
5835
5844
  get each() {
5836
5845
  return toolNames();
5837
5846
  },
@@ -5843,7 +5852,7 @@ var UserMessageGroupCard = (props) => {
5843
5852
  return systemPrompts().length > 0;
5844
5853
  },
5845
5854
  get children() {
5846
- return ssr(_tmpl$143, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), escape(systemPrompts().length), escape(createComponent(For, {
5855
+ return ssr(_tmpl$133, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), escape(systemPrompts().length), escape(createComponent(For, {
5847
5856
  get each() {
5848
5857
  return systemPrompts();
5849
5858
  },
@@ -5860,7 +5869,7 @@ var UserMessageGroupCard = (props) => {
5860
5869
  return hasModelOptions();
5861
5870
  },
5862
5871
  get children() {
5863
- return ssr(_tmpl$153, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configJsonTreeContainer, true), false), escape(createComponent(JsonTree, {
5872
+ return ssr(_tmpl$143, ssrAttribute("class", escape(s().configPanelSection, true), false), ssrAttribute("class", escape(s().configPanelLabel, true), false), ssrAttribute("class", escape(s().configJsonTreeContainer, true), false), escape(createComponent(JsonTree, {
5864
5873
  get value() {
5865
5874
  return modelOptions();
5866
5875
  },