@tanstack/ai-devtools-core 0.3.32 → 0.3.34

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());
2704
+ let messageMap = pendingMessageChunks.get(conversationId);
2705
+ if (!messageMap) {
2706
+ messageMap = /* @__PURE__ */ new Map();
2707
+ pendingMessageChunks.set(conversationId, messageMap);
2705
2708
  }
2706
- const messageMap = pendingMessageChunks.get(conversationId);
2707
- if (!messageMap.has(messageIndex)) {
2708
- messageMap.set(messageIndex, {
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
  }
@@ -4278,8 +4283,9 @@ var ConversationHeader = (props) => {
4278
4283
  const conv = () => props.conversation;
4279
4284
  const iterationCount = () => conv().iterationCount ?? conv().iterations.length;
4280
4285
  const totalDuration = () => {
4281
- if (!conv().completedAt) return void 0;
4282
- return conv().completedAt - conv().startedAt;
4286
+ const completedAt = conv().completedAt;
4287
+ if (!completedAt) return void 0;
4288
+ return completedAt - conv().startedAt;
4283
4289
  };
4284
4290
  const totalMessages = () => conv().messages.length;
4285
4291
  const totalToolCalls = () => {
@@ -4578,7 +4584,7 @@ var ToolCallDisplay = (props) => {
4578
4584
  insert(_el$5, () => tool().state);
4579
4585
  insert(_el$2, createComponent(Show, {
4580
4586
  get when() {
4581
- return memo(() => tool().duration !== void 0)() && tool().duration > 0;
4587
+ return (tool().duration ?? 0) > 0;
4582
4588
  },
4583
4589
  get children() {
4584
4590
  var _el$6 = _tmpl$9(); _el$6.firstChild;
@@ -5157,34 +5163,34 @@ var MessageCard = (props) => {
5157
5163
  }), null);
5158
5164
  insert(_el$5, createComponent(Show, {
5159
5165
  get when() {
5160
- return memo(() => msg().role === "tool")() && parseJsonContent() !== null;
5166
+ return memo(() => msg().role === "tool")() && parseJsonContent();
5161
5167
  },
5162
5168
  get fallback() {
5163
5169
  return (() => {
5164
- var _el$24 = _tmpl$55();
5165
- insert(_el$24, () => msg().content);
5166
- effect(() => className(_el$24, styles().conversationDetails.messageContent));
5167
- return _el$24;
5170
+ var _el$23 = _tmpl$55();
5171
+ insert(_el$23, () => msg().content);
5172
+ effect(() => className(_el$23, styles().conversationDetails.messageContent));
5173
+ return _el$23;
5168
5174
  })();
5169
5175
  },
5170
- get children() {
5171
- var _el$22 = _tmpl$55();
5172
- insert(_el$22, createComponent(JsonTree, {
5176
+ children: (parsed) => (() => {
5177
+ var _el$24 = _tmpl$55();
5178
+ insert(_el$24, createComponent(JsonTree, {
5173
5179
  get value() {
5174
- return parseJsonContent();
5180
+ return parsed();
5175
5181
  }
5176
5182
  }));
5177
- effect(() => className(_el$22, styles().conversationDetails.toolJsonContainer));
5178
- return _el$22;
5179
- }
5183
+ effect(() => className(_el$24, styles().conversationDetails.toolJsonContainer));
5184
+ return _el$24;
5185
+ })()
5180
5186
  }), null);
5181
5187
  insert(_el$5, createComponent(Show, {
5182
5188
  get when() {
5183
- return memo(() => !!msg().toolCalls)() && msg().toolCalls.length > 0;
5189
+ return msg().toolCalls?.length;
5184
5190
  },
5185
5191
  get children() {
5186
- var _el$23 = _tmpl$55();
5187
- insert(_el$23, createComponent(For, {
5192
+ var _el$22 = _tmpl$55();
5193
+ insert(_el$22, createComponent(For, {
5188
5194
  get each() {
5189
5195
  return msg().toolCalls;
5190
5196
  },
@@ -5192,21 +5198,19 @@ var MessageCard = (props) => {
5192
5198
  tool
5193
5199
  })
5194
5200
  }));
5195
- effect(() => className(_el$23, styles().conversationDetails.toolCallsContainer));
5196
- return _el$23;
5201
+ effect(() => className(_el$22, styles().conversationDetails.toolCallsContainer));
5202
+ return _el$22;
5197
5203
  }
5198
5204
  }), null);
5199
5205
  insert(_el$5, createComponent(Show, {
5200
5206
  get when() {
5201
- return memo(() => !!msg().chunks)() && msg().chunks.length > 0;
5207
+ return memo(() => !!msg().chunks?.length)() ? msg().chunks : null;
5202
5208
  },
5203
- get children() {
5204
- return createComponent(ChunksCollapsible, {
5205
- get chunks() {
5206
- return msg().chunks;
5207
- }
5208
- });
5209
- }
5209
+ children: (chunks) => createComponent(ChunksCollapsible, {
5210
+ get chunks() {
5211
+ return chunks();
5212
+ }
5213
+ })
5210
5214
  }), null);
5211
5215
  effect((_p$) => {
5212
5216
  var _v$1 = getCardClass(), _v$10 = msg().role === "user" ? "" : styles().conversationDetails.messageCardContent, _v$11 = styles().conversationDetails.messageHeader, _v$12 = msg().role === "user" ? styles().conversationDetails.avatarUser : isClientMessage() ? styles().conversationDetails.avatarClient : styles().conversationDetails.avatarServer, _v$13 = styles().conversationDetails.roleLabel, _v$14 = msg().role === "user" ? styles().conversationDetails.roleLabelUser : isClientMessage() ? styles().conversationDetails.roleLabelClient : styles().conversationDetails.roleLabelServer, _v$15 = styles().conversationDetails.timestamp;
@@ -5387,10 +5391,12 @@ var ChunksTab = (props) => {
5387
5391
  const groups = /* @__PURE__ */ new Map();
5388
5392
  props.chunks.forEach((chunk) => {
5389
5393
  const key = chunk.messageId || "no-message-id";
5390
- if (!groups.has(key)) {
5391
- groups.set(key, []);
5394
+ let group = groups.get(key);
5395
+ if (!group) {
5396
+ group = [];
5397
+ groups.set(key, group);
5392
5398
  }
5393
- groups.get(key).push(chunk);
5399
+ group.push(chunk);
5394
5400
  });
5395
5401
  return Array.from(groups.entries());
5396
5402
  };
@@ -5637,13 +5643,13 @@ var _tmpl$122 = /* @__PURE__ */ template(`<span>config changed`);
5637
5643
  var _tmpl$132 = /* @__PURE__ */ template(`<span> middleware transform`);
5638
5644
  var _tmpl$142 = /* @__PURE__ */ template(`<span>\u{1F527} `);
5639
5645
  var _tmpl$152 = /* @__PURE__ */ template(`<span>\u23F1\uFE0F `);
5640
- var _tmpl$162 = /* @__PURE__ */ template(`<span>\u{1F3AF} `);
5641
- var _tmpl$172 = /* @__PURE__ */ template(`<span>\u27F3 streaming`);
5642
- var _tmpl$182 = /* @__PURE__ */ template(`<div><span>Config Changes</span><div>`);
5643
- var _tmpl$192 = /* @__PURE__ */ template(`<div><span>Tools</span><div>`);
5644
- var _tmpl$20 = /* @__PURE__ */ template(`<div><span>System Prompts (<!>)`);
5645
- var _tmpl$21 = /* @__PURE__ */ template(`<div><span>Model Options</span><div>`);
5646
- var _tmpl$222 = /* @__PURE__ */ template(`<div><div><div><span></span><div></div></div><div></div><span>\u25B6</span></div><div><div><div></div></div></div><div><div>`);
5646
+ var _tmpl$162 = /* @__PURE__ */ template(`<span>\u27F3 streaming`);
5647
+ var _tmpl$172 = /* @__PURE__ */ template(`<div><span>Config Changes</span><div>`);
5648
+ var _tmpl$182 = /* @__PURE__ */ template(`<div><span>Tools</span><div>`);
5649
+ var _tmpl$192 = /* @__PURE__ */ template(`<div><span>System Prompts (<!>)`);
5650
+ var _tmpl$20 = /* @__PURE__ */ template(`<div><span>Model Options</span><div>`);
5651
+ var _tmpl$21 = /* @__PURE__ */ template(`<div><div><div><span></span><div></div></div><div></div><span>\u25B6</span></div><div><div><div></div></div></div><div><div>`);
5652
+ var _tmpl$222 = /* @__PURE__ */ template(`<span>\u{1F3AF} `);
5647
5653
  var _tmpl$232 = /* @__PURE__ */ template(`<div><span>:</span><span></span><span>\u2192</span><span>`);
5648
5654
  var _tmpl$242 = /* @__PURE__ */ template(`<span><span>`);
5649
5655
  function getIterationLabel(iter, displayIndex) {
@@ -5720,7 +5726,10 @@ var MiddlewareStep = (props) => {
5720
5726
  if (ev().hookName === "onBeforeToolCall" && ev().hasTransform) return "DECISION";
5721
5727
  return null;
5722
5728
  };
5723
- const hasChanges = () => ev().configChanges && Object.keys(ev().configChanges).length > 0;
5729
+ const hasChanges = () => {
5730
+ const changes = ev().configChanges;
5731
+ return changes && Object.keys(changes).length > 0;
5732
+ };
5724
5733
  return [(() => {
5725
5734
  var _el$ = _tmpl$310(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling;
5726
5735
  insert(_el$3, () => ev().middlewareName);
@@ -6072,8 +6081,9 @@ var IterationCard = (props) => {
6072
6081
  const isCompleted = () => !!iter().completedAt && iter().finishReason !== "error";
6073
6082
  const isError = () => iter().finishReason === "error";
6074
6083
  const duration = () => {
6075
- if (!iter().completedAt) return void 0;
6076
- return iter().completedAt - iter().startedAt;
6084
+ const completedAt = iter().completedAt;
6085
+ if (!completedAt) return void 0;
6086
+ return completedAt - iter().startedAt;
6077
6087
  };
6078
6088
  const label = () => getIterationLabel(iter(), props.index);
6079
6089
  const steps = createMemo(() => buildSteps(iter(), props.messages));
@@ -6090,8 +6100,9 @@ var IterationCard = (props) => {
6090
6100
  };
6091
6101
  });
6092
6102
  const finishLabel = () => {
6093
- if (!iter().finishReason) return null;
6094
- switch (iter().finishReason) {
6103
+ const reason = iter().finishReason;
6104
+ if (!reason) return null;
6105
+ switch (reason) {
6095
6106
  case "stop":
6096
6107
  return "completed";
6097
6108
  case "tool_calls":
@@ -6101,7 +6112,7 @@ var IterationCard = (props) => {
6101
6112
  case "length":
6102
6113
  return "max length";
6103
6114
  default:
6104
- return iter().finishReason;
6115
+ return reason;
6105
6116
  }
6106
6117
  };
6107
6118
  const headerAccent = () => {
@@ -6111,9 +6122,13 @@ var IterationCard = (props) => {
6111
6122
  return "";
6112
6123
  };
6113
6124
  const configSubtitle = () => {
6125
+ const {
6126
+ model,
6127
+ provider
6128
+ } = iter();
6114
6129
  const parts = [];
6115
- if (iter().model) parts.push(iter().model);
6116
- if (iter().provider) parts.push(iter().provider);
6130
+ if (model) parts.push(model);
6131
+ if (provider) parts.push(provider);
6117
6132
  return parts.length > 0 ? parts.join(" \xB7 ") : null;
6118
6133
  };
6119
6134
  const toolNames = () => iter().toolNames || [];
@@ -6181,7 +6196,7 @@ var IterationCard = (props) => {
6181
6196
  };
6182
6197
  const hasExpandableConfig = () => toolNames().length > 0 || systemPrompts().length > 0 || hasModelOptions();
6183
6198
  return (() => {
6184
- var _el$42 = _tmpl$222(), _el$43 = _el$42.firstChild, _el$44 = _el$43.firstChild, _el$45 = _el$44.firstChild, _el$46 = _el$45.nextSibling, _el$57 = _el$44.nextSibling, _el$66 = _el$57.nextSibling, _el$67 = _el$43.nextSibling, _el$68 = _el$67.firstChild, _el$69 = _el$68.firstChild, _el$84 = _el$67.nextSibling, _el$85 = _el$84.firstChild;
6199
+ var _el$42 = _tmpl$21(), _el$43 = _el$42.firstChild, _el$44 = _el$43.firstChild, _el$45 = _el$44.firstChild, _el$46 = _el$45.nextSibling, _el$57 = _el$44.nextSibling, _el$64 = _el$57.nextSibling, _el$65 = _el$43.nextSibling, _el$66 = _el$65.firstChild, _el$67 = _el$66.firstChild, _el$82 = _el$65.nextSibling, _el$83 = _el$82.firstChild;
6185
6200
  _el$43.$$click = () => setIsOpen(!isOpen());
6186
6201
  insert(_el$45, label);
6187
6202
  insert(_el$46, createComponent(Show, {
@@ -6319,38 +6334,38 @@ var IterationCard = (props) => {
6319
6334
  get when() {
6320
6335
  return deltaUsage();
6321
6336
  },
6322
- get children() {
6323
- var _el$63 = _tmpl$162(); _el$63.firstChild;
6324
- insert(_el$63, () => deltaUsage().totalTokens.toLocaleString(), null);
6337
+ children: (usage) => (() => {
6338
+ var _el$84 = _tmpl$222(); _el$84.firstChild;
6339
+ insert(_el$84, () => usage().totalTokens.toLocaleString(), null);
6325
6340
  effect((_p$) => {
6326
- var _v$33 = `${s().badge} ${s().badgeUsage}`, _v$34 = `Prompt: ${deltaUsage().promptTokens.toLocaleString()} | Completion: ${deltaUsage().completionTokens.toLocaleString()}`;
6327
- _v$33 !== _p$.e && className(_el$63, _p$.e = _v$33);
6328
- _v$34 !== _p$.t && setAttribute(_el$63, "title", _p$.t = _v$34);
6341
+ var _v$56 = `${s().badge} ${s().badgeUsage}`, _v$57 = `Prompt: ${usage().promptTokens.toLocaleString()} | Completion: ${usage().completionTokens.toLocaleString()}`;
6342
+ _v$56 !== _p$.e && className(_el$84, _p$.e = _v$56);
6343
+ _v$57 !== _p$.t && setAttribute(_el$84, "title", _p$.t = _v$57);
6329
6344
  return _p$;
6330
6345
  }, {
6331
6346
  e: void 0,
6332
6347
  t: void 0
6333
6348
  });
6334
- return _el$63;
6335
- }
6349
+ return _el$84;
6350
+ })()
6336
6351
  }), null);
6337
6352
  insert(_el$57, createComponent(Show, {
6338
6353
  get when() {
6339
6354
  return isActive();
6340
6355
  },
6341
6356
  get children() {
6342
- var _el$65 = _tmpl$172();
6343
- effect(() => className(_el$65, `${s().badge} ${s().badgeDuration}`));
6344
- return _el$65;
6357
+ var _el$63 = _tmpl$162();
6358
+ effect(() => className(_el$63, `${s().badge} ${s().badgeDuration}`));
6359
+ return _el$63;
6345
6360
  }
6346
6361
  }), null);
6347
- insert(_el$69, createComponent(Show, {
6362
+ insert(_el$67, createComponent(Show, {
6348
6363
  get when() {
6349
6364
  return hasConfigChanged();
6350
6365
  },
6351
6366
  get children() {
6352
- var _el$70 = _tmpl$182(), _el$71 = _el$70.firstChild, _el$72 = _el$71.nextSibling;
6353
- insert(_el$72, createComponent(For, {
6367
+ var _el$68 = _tmpl$172(), _el$69 = _el$68.firstChild, _el$70 = _el$69.nextSibling;
6368
+ insert(_el$70, createComponent(For, {
6354
6369
  get each() {
6355
6370
  return configDiffs();
6356
6371
  },
@@ -6378,26 +6393,26 @@ var IterationCard = (props) => {
6378
6393
  })()
6379
6394
  }));
6380
6395
  effect((_p$) => {
6381
- var _v$35 = s().configPanelSection, _v$36 = s().configPanelLabel, _v$37 = s().configDiffSection;
6382
- _v$35 !== _p$.e && className(_el$70, _p$.e = _v$35);
6383
- _v$36 !== _p$.t && className(_el$71, _p$.t = _v$36);
6384
- _v$37 !== _p$.a && className(_el$72, _p$.a = _v$37);
6396
+ var _v$33 = s().configPanelSection, _v$34 = s().configPanelLabel, _v$35 = s().configDiffSection;
6397
+ _v$33 !== _p$.e && className(_el$68, _p$.e = _v$33);
6398
+ _v$34 !== _p$.t && className(_el$69, _p$.t = _v$34);
6399
+ _v$35 !== _p$.a && className(_el$70, _p$.a = _v$35);
6385
6400
  return _p$;
6386
6401
  }, {
6387
6402
  e: void 0,
6388
6403
  t: void 0,
6389
6404
  a: void 0
6390
6405
  });
6391
- return _el$70;
6406
+ return _el$68;
6392
6407
  }
6393
6408
  }), null);
6394
- insert(_el$69, createComponent(Show, {
6409
+ insert(_el$67, createComponent(Show, {
6395
6410
  get when() {
6396
6411
  return toolNames().length > 0;
6397
6412
  },
6398
6413
  get children() {
6399
- var _el$73 = _tmpl$192(), _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling;
6400
- insert(_el$75, createComponent(For, {
6414
+ var _el$71 = _tmpl$182(), _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling;
6415
+ insert(_el$73, createComponent(For, {
6401
6416
  get each() {
6402
6417
  return toolNames();
6403
6418
  },
@@ -6418,27 +6433,27 @@ var IterationCard = (props) => {
6418
6433
  })()
6419
6434
  }));
6420
6435
  effect((_p$) => {
6421
- var _v$38 = s().configPanelSection, _v$39 = s().configPanelLabel, _v$40 = s().configToolsList;
6422
- _v$38 !== _p$.e && className(_el$73, _p$.e = _v$38);
6423
- _v$39 !== _p$.t && className(_el$74, _p$.t = _v$39);
6424
- _v$40 !== _p$.a && className(_el$75, _p$.a = _v$40);
6436
+ var _v$36 = s().configPanelSection, _v$37 = s().configPanelLabel, _v$38 = s().configToolsList;
6437
+ _v$36 !== _p$.e && className(_el$71, _p$.e = _v$36);
6438
+ _v$37 !== _p$.t && className(_el$72, _p$.t = _v$37);
6439
+ _v$38 !== _p$.a && className(_el$73, _p$.a = _v$38);
6425
6440
  return _p$;
6426
6441
  }, {
6427
6442
  e: void 0,
6428
6443
  t: void 0,
6429
6444
  a: void 0
6430
6445
  });
6431
- return _el$73;
6446
+ return _el$71;
6432
6447
  }
6433
6448
  }), null);
6434
- insert(_el$69, createComponent(Show, {
6449
+ insert(_el$67, createComponent(Show, {
6435
6450
  get when() {
6436
6451
  return systemPrompts().length > 0;
6437
6452
  },
6438
6453
  get children() {
6439
- var _el$76 = _tmpl$20(), _el$77 = _el$76.firstChild, _el$78 = _el$77.firstChild, _el$80 = _el$78.nextSibling; _el$80.nextSibling;
6440
- insert(_el$77, () => systemPrompts().length, _el$80);
6441
- insert(_el$76, createComponent(For, {
6454
+ var _el$74 = _tmpl$192(), _el$75 = _el$74.firstChild, _el$76 = _el$75.firstChild, _el$78 = _el$76.nextSibling; _el$78.nextSibling;
6455
+ insert(_el$75, () => systemPrompts().length, _el$78);
6456
+ insert(_el$74, createComponent(For, {
6442
6457
  get each() {
6443
6458
  return systemPrompts();
6444
6459
  },
@@ -6450,24 +6465,24 @@ var IterationCard = (props) => {
6450
6465
  })
6451
6466
  }), null);
6452
6467
  effect((_p$) => {
6453
- var _v$41 = s().configPanelSection, _v$42 = s().configPanelLabel;
6454
- _v$41 !== _p$.e && className(_el$76, _p$.e = _v$41);
6455
- _v$42 !== _p$.t && className(_el$77, _p$.t = _v$42);
6468
+ var _v$39 = s().configPanelSection, _v$40 = s().configPanelLabel;
6469
+ _v$39 !== _p$.e && className(_el$74, _p$.e = _v$39);
6470
+ _v$40 !== _p$.t && className(_el$75, _p$.t = _v$40);
6456
6471
  return _p$;
6457
6472
  }, {
6458
6473
  e: void 0,
6459
6474
  t: void 0
6460
6475
  });
6461
- return _el$76;
6476
+ return _el$74;
6462
6477
  }
6463
6478
  }), null);
6464
- insert(_el$69, createComponent(Show, {
6479
+ insert(_el$67, createComponent(Show, {
6465
6480
  get when() {
6466
6481
  return hasModelOptions();
6467
6482
  },
6468
6483
  get children() {
6469
- var _el$81 = _tmpl$21(), _el$82 = _el$81.firstChild, _el$83 = _el$82.nextSibling;
6470
- insert(_el$83, createComponent(JsonTree, {
6484
+ var _el$79 = _tmpl$20(), _el$80 = _el$79.firstChild, _el$81 = _el$80.nextSibling;
6485
+ insert(_el$81, createComponent(JsonTree, {
6471
6486
  get value() {
6472
6487
  return modelOptions();
6473
6488
  },
@@ -6475,20 +6490,20 @@ var IterationCard = (props) => {
6475
6490
  copyable: true
6476
6491
  }));
6477
6492
  effect((_p$) => {
6478
- var _v$43 = s().configPanelSection, _v$44 = s().configPanelLabel, _v$45 = s().configJsonTreeContainer;
6479
- _v$43 !== _p$.e && className(_el$81, _p$.e = _v$43);
6480
- _v$44 !== _p$.t && className(_el$82, _p$.t = _v$44);
6481
- _v$45 !== _p$.a && className(_el$83, _p$.a = _v$45);
6493
+ var _v$41 = s().configPanelSection, _v$42 = s().configPanelLabel, _v$43 = s().configJsonTreeContainer;
6494
+ _v$41 !== _p$.e && className(_el$79, _p$.e = _v$41);
6495
+ _v$42 !== _p$.t && className(_el$80, _p$.t = _v$42);
6496
+ _v$43 !== _p$.a && className(_el$81, _p$.a = _v$43);
6482
6497
  return _p$;
6483
6498
  }, {
6484
6499
  e: void 0,
6485
6500
  t: void 0,
6486
6501
  a: void 0
6487
6502
  });
6488
- return _el$81;
6503
+ return _el$79;
6489
6504
  }
6490
6505
  }), null);
6491
- insert(_el$85, createComponent(Index, {
6506
+ insert(_el$83, createComponent(Index, {
6492
6507
  get each() {
6493
6508
  return steps();
6494
6509
  },
@@ -6554,19 +6569,19 @@ var IterationCard = (props) => {
6554
6569
  })
6555
6570
  }));
6556
6571
  effect((_p$) => {
6557
- var _v$46 = s().iterCard, _v$47 = `${props.index * 60}ms`, _v$48 = `${s().iterCardHeader} ${headerAccent()}`, _v$49 = s().cardHeaderContent, _v$50 = s().iterCardTitle, _v$51 = s().cardSubtitle, _v$52 = s().cardHeaderBadges, _v$53 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`, _v$54 = `${s().configPanelWrapper} ${configExpanded() ? s().configPanelWrapperOpen : ""}`, _v$55 = s().configPanel, _v$56 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$57 = s().cardBodyInner;
6558
- _v$46 !== _p$.e && className(_el$42, _p$.e = _v$46);
6559
- _v$47 !== _p$.t && setStyleProperty(_el$42, "animation-delay", _p$.t = _v$47);
6560
- _v$48 !== _p$.a && className(_el$43, _p$.a = _v$48);
6561
- _v$49 !== _p$.o && className(_el$44, _p$.o = _v$49);
6562
- _v$50 !== _p$.i && className(_el$45, _p$.i = _v$50);
6563
- _v$51 !== _p$.n && className(_el$46, _p$.n = _v$51);
6564
- _v$52 !== _p$.s && className(_el$57, _p$.s = _v$52);
6565
- _v$53 !== _p$.h && className(_el$66, _p$.h = _v$53);
6566
- _v$54 !== _p$.r && className(_el$67, _p$.r = _v$54);
6567
- _v$55 !== _p$.d && className(_el$68, _p$.d = _v$55);
6568
- _v$56 !== _p$.l && className(_el$84, _p$.l = _v$56);
6569
- _v$57 !== _p$.u && className(_el$85, _p$.u = _v$57);
6572
+ var _v$44 = s().iterCard, _v$45 = `${props.index * 60}ms`, _v$46 = `${s().iterCardHeader} ${headerAccent()}`, _v$47 = s().cardHeaderContent, _v$48 = s().iterCardTitle, _v$49 = s().cardSubtitle, _v$50 = s().cardHeaderBadges, _v$51 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`, _v$52 = `${s().configPanelWrapper} ${configExpanded() ? s().configPanelWrapperOpen : ""}`, _v$53 = s().configPanel, _v$54 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$55 = s().cardBodyInner;
6573
+ _v$44 !== _p$.e && className(_el$42, _p$.e = _v$44);
6574
+ _v$45 !== _p$.t && setStyleProperty(_el$42, "animation-delay", _p$.t = _v$45);
6575
+ _v$46 !== _p$.a && className(_el$43, _p$.a = _v$46);
6576
+ _v$47 !== _p$.o && className(_el$44, _p$.o = _v$47);
6577
+ _v$48 !== _p$.i && className(_el$45, _p$.i = _v$48);
6578
+ _v$49 !== _p$.n && className(_el$46, _p$.n = _v$49);
6579
+ _v$50 !== _p$.s && className(_el$57, _p$.s = _v$50);
6580
+ _v$51 !== _p$.h && className(_el$64, _p$.h = _v$51);
6581
+ _v$52 !== _p$.r && className(_el$65, _p$.r = _v$52);
6582
+ _v$53 !== _p$.d && className(_el$66, _p$.d = _v$53);
6583
+ _v$54 !== _p$.l && className(_el$82, _p$.l = _v$54);
6584
+ _v$55 !== _p$.u && className(_el$83, _p$.u = _v$55);
6570
6585
  return _p$;
6571
6586
  }, {
6572
6587
  e: void 0,
@@ -6600,12 +6615,12 @@ var _tmpl$94 = /* @__PURE__ */ template(`<span> middleware transform`);
6600
6615
  var _tmpl$03 = /* @__PURE__ */ template(`<span>\u{1F504} `);
6601
6616
  var _tmpl$111 = /* @__PURE__ */ template(`<span>\u{1F527} `);
6602
6617
  var _tmpl$103 = /* @__PURE__ */ template(`<span>\u23F1\uFE0F `);
6603
- var _tmpl$113 = /* @__PURE__ */ template(`<span>\u{1F3AF} `);
6604
- var _tmpl$123 = /* @__PURE__ */ template(`<span>\u27F3 streaming`);
6605
- var _tmpl$133 = /* @__PURE__ */ template(`<div><span>Tools</span><div>`);
6606
- var _tmpl$143 = /* @__PURE__ */ template(`<div><span>System Prompts (<!>)`);
6607
- var _tmpl$153 = /* @__PURE__ */ template(`<div><span>Model Options</span><div>`);
6608
- var _tmpl$163 = /* @__PURE__ */ template(`<div><div><div>U</div><div><span></span><div></div></div><div></div><span>\u25B6</span></div><div><div><div></div></div></div><div><div><div>`);
6618
+ var _tmpl$113 = /* @__PURE__ */ template(`<span>\u27F3 streaming`);
6619
+ var _tmpl$123 = /* @__PURE__ */ template(`<div><span>Tools</span><div>`);
6620
+ var _tmpl$133 = /* @__PURE__ */ template(`<div><span>System Prompts (<!>)`);
6621
+ var _tmpl$143 = /* @__PURE__ */ template(`<div><span>Model Options</span><div>`);
6622
+ var _tmpl$153 = /* @__PURE__ */ template(`<div><div><div>U</div><div><span></span><div></div></div><div></div><span>\u25B6</span></div><div><div><div></div></div></div><div><div><div>`);
6623
+ var _tmpl$163 = /* @__PURE__ */ template(`<span>\u{1F3AF} `);
6609
6624
  var _tmpl$173 = /* @__PURE__ */ template(`<span><span>`);
6610
6625
  var IterationTimeline = (props) => {
6611
6626
  const styles = useStyles();
@@ -6621,8 +6636,7 @@ var IterationTimeline = (props) => {
6621
6636
  }
6622
6637
  const result = [];
6623
6638
  const sortedUsers = [...userMessages].sort((a, b) => a.timestamp - b.timestamp);
6624
- for (let u = 0; u < sortedUsers.length; u++) {
6625
- const currentUser = sortedUsers[u];
6639
+ for (const [u, currentUser] of sortedUsers.entries()) {
6626
6640
  const nextUser = sortedUsers[u + 1];
6627
6641
  const groupIters = iters.filter((it) => {
6628
6642
  if (it.startedAt < currentUser.timestamp) return false;
@@ -6636,8 +6650,9 @@ var IterationTimeline = (props) => {
6636
6650
  });
6637
6651
  }
6638
6652
  }
6639
- if (sortedUsers[0]) {
6640
- const earlyIters = iters.filter((it) => it.startedAt < sortedUsers[0].timestamp);
6653
+ const firstUser = sortedUsers[0];
6654
+ if (firstUser) {
6655
+ const earlyIters = iters.filter((it) => it.startedAt < firstUser.timestamp);
6641
6656
  if (earlyIters.length > 0) {
6642
6657
  result.unshift({
6643
6658
  userMessage: null,
@@ -6840,7 +6855,7 @@ var UserMessageGroupCard = (props) => {
6840
6855
  });
6841
6856
  const hasExpandableConfig = () => toolNames().length > 0 || systemPrompts().length > 0 || hasModelOptions();
6842
6857
  return (() => {
6843
- var _el$1 = _tmpl$163(), _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$24 = _el$12.nextSibling, _el$34 = _el$24.nextSibling, _el$35 = _el$10.nextSibling, _el$36 = _el$35.firstChild, _el$37 = _el$36.firstChild, _el$49 = _el$35.nextSibling, _el$50 = _el$49.firstChild, _el$51 = _el$50.firstChild;
6858
+ var _el$1 = _tmpl$153(), _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$24 = _el$12.nextSibling, _el$32 = _el$24.nextSibling, _el$33 = _el$10.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$34.firstChild, _el$47 = _el$33.nextSibling, _el$48 = _el$47.firstChild, _el$49 = _el$48.firstChild;
6844
6859
  _el$10.$$click = () => setIsOpen(!isOpen());
6845
6860
  insert(_el$13, userContent);
6846
6861
  insert(_el$14, createComponent(Show, {
@@ -6976,38 +6991,38 @@ var UserMessageGroupCard = (props) => {
6976
6991
  get when() {
6977
6992
  return totalUsage();
6978
6993
  },
6979
- get children() {
6980
- var _el$31 = _tmpl$113(); _el$31.firstChild;
6981
- insert(_el$31, () => totalUsage().totalTokens.toLocaleString(), null);
6994
+ children: (usage) => (() => {
6995
+ var _el$50 = _tmpl$163(); _el$50.firstChild;
6996
+ insert(_el$50, () => usage().totalTokens.toLocaleString(), null);
6982
6997
  effect((_p$) => {
6983
- var _v$1 = `${s().badge} ${s().badgeUsage}`, _v$10 = `Prompt: ${totalUsage().promptTokens.toLocaleString()} | Completion: ${totalUsage().completionTokens.toLocaleString()}`;
6984
- _v$1 !== _p$.e && className(_el$31, _p$.e = _v$1);
6985
- _v$10 !== _p$.t && setAttribute(_el$31, "title", _p$.t = _v$10);
6998
+ var _v$30 = `${s().badge} ${s().badgeUsage}`, _v$31 = `Prompt: ${usage().promptTokens.toLocaleString()} | Completion: ${usage().completionTokens.toLocaleString()}`;
6999
+ _v$30 !== _p$.e && className(_el$50, _p$.e = _v$30);
7000
+ _v$31 !== _p$.t && setAttribute(_el$50, "title", _p$.t = _v$31);
6986
7001
  return _p$;
6987
7002
  }, {
6988
7003
  e: void 0,
6989
7004
  t: void 0
6990
7005
  });
6991
- return _el$31;
6992
- }
7006
+ return _el$50;
7007
+ })()
6993
7008
  }), null);
6994
7009
  insert(_el$24, createComponent(Show, {
6995
7010
  get when() {
6996
7011
  return isActive();
6997
7012
  },
6998
7013
  get children() {
6999
- var _el$33 = _tmpl$123();
7000
- effect(() => className(_el$33, `${s().badge} ${s().badgeDuration}`));
7001
- return _el$33;
7014
+ var _el$31 = _tmpl$113();
7015
+ effect(() => className(_el$31, `${s().badge} ${s().badgeDuration}`));
7016
+ return _el$31;
7002
7017
  }
7003
7018
  }), null);
7004
- insert(_el$37, createComponent(Show, {
7019
+ insert(_el$35, createComponent(Show, {
7005
7020
  get when() {
7006
7021
  return toolNames().length > 0;
7007
7022
  },
7008
7023
  get children() {
7009
- var _el$38 = _tmpl$133(), _el$39 = _el$38.firstChild, _el$40 = _el$39.nextSibling;
7010
- insert(_el$40, createComponent(For, {
7024
+ var _el$36 = _tmpl$123(), _el$37 = _el$36.firstChild, _el$38 = _el$37.nextSibling;
7025
+ insert(_el$38, createComponent(For, {
7011
7026
  get each() {
7012
7027
  return toolNames();
7013
7028
  },
@@ -7028,27 +7043,27 @@ var UserMessageGroupCard = (props) => {
7028
7043
  })()
7029
7044
  }));
7030
7045
  effect((_p$) => {
7031
- var _v$11 = s().configPanelSection, _v$12 = s().configPanelLabel, _v$13 = s().configToolsList;
7032
- _v$11 !== _p$.e && className(_el$38, _p$.e = _v$11);
7033
- _v$12 !== _p$.t && className(_el$39, _p$.t = _v$12);
7034
- _v$13 !== _p$.a && className(_el$40, _p$.a = _v$13);
7046
+ var _v$1 = s().configPanelSection, _v$10 = s().configPanelLabel, _v$11 = s().configToolsList;
7047
+ _v$1 !== _p$.e && className(_el$36, _p$.e = _v$1);
7048
+ _v$10 !== _p$.t && className(_el$37, _p$.t = _v$10);
7049
+ _v$11 !== _p$.a && className(_el$38, _p$.a = _v$11);
7035
7050
  return _p$;
7036
7051
  }, {
7037
7052
  e: void 0,
7038
7053
  t: void 0,
7039
7054
  a: void 0
7040
7055
  });
7041
- return _el$38;
7056
+ return _el$36;
7042
7057
  }
7043
7058
  }), null);
7044
- insert(_el$37, createComponent(Show, {
7059
+ insert(_el$35, createComponent(Show, {
7045
7060
  get when() {
7046
7061
  return systemPrompts().length > 0;
7047
7062
  },
7048
7063
  get children() {
7049
- var _el$41 = _tmpl$143(), _el$42 = _el$41.firstChild, _el$43 = _el$42.firstChild, _el$45 = _el$43.nextSibling; _el$45.nextSibling;
7050
- insert(_el$42, () => systemPrompts().length, _el$45);
7051
- insert(_el$41, createComponent(For, {
7064
+ var _el$39 = _tmpl$133(), _el$40 = _el$39.firstChild, _el$41 = _el$40.firstChild, _el$43 = _el$41.nextSibling; _el$43.nextSibling;
7065
+ insert(_el$40, () => systemPrompts().length, _el$43);
7066
+ insert(_el$39, createComponent(For, {
7052
7067
  get each() {
7053
7068
  return systemPrompts();
7054
7069
  },
@@ -7060,24 +7075,24 @@ var UserMessageGroupCard = (props) => {
7060
7075
  })
7061
7076
  }), null);
7062
7077
  effect((_p$) => {
7063
- var _v$14 = s().configPanelSection, _v$15 = s().configPanelLabel;
7064
- _v$14 !== _p$.e && className(_el$41, _p$.e = _v$14);
7065
- _v$15 !== _p$.t && className(_el$42, _p$.t = _v$15);
7078
+ var _v$12 = s().configPanelSection, _v$13 = s().configPanelLabel;
7079
+ _v$12 !== _p$.e && className(_el$39, _p$.e = _v$12);
7080
+ _v$13 !== _p$.t && className(_el$40, _p$.t = _v$13);
7066
7081
  return _p$;
7067
7082
  }, {
7068
7083
  e: void 0,
7069
7084
  t: void 0
7070
7085
  });
7071
- return _el$41;
7086
+ return _el$39;
7072
7087
  }
7073
7088
  }), null);
7074
- insert(_el$37, createComponent(Show, {
7089
+ insert(_el$35, createComponent(Show, {
7075
7090
  get when() {
7076
7091
  return hasModelOptions();
7077
7092
  },
7078
7093
  get children() {
7079
- var _el$46 = _tmpl$153(), _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling;
7080
- insert(_el$48, createComponent(JsonTree, {
7094
+ var _el$44 = _tmpl$143(), _el$45 = _el$44.firstChild, _el$46 = _el$45.nextSibling;
7095
+ insert(_el$46, createComponent(JsonTree, {
7081
7096
  get value() {
7082
7097
  return modelOptions();
7083
7098
  },
@@ -7085,20 +7100,20 @@ var UserMessageGroupCard = (props) => {
7085
7100
  copyable: true
7086
7101
  }));
7087
7102
  effect((_p$) => {
7088
- var _v$16 = s().configPanelSection, _v$17 = s().configPanelLabel, _v$18 = s().configJsonTreeContainer;
7089
- _v$16 !== _p$.e && className(_el$46, _p$.e = _v$16);
7090
- _v$17 !== _p$.t && className(_el$47, _p$.t = _v$17);
7091
- _v$18 !== _p$.a && className(_el$48, _p$.a = _v$18);
7103
+ var _v$14 = s().configPanelSection, _v$15 = s().configPanelLabel, _v$16 = s().configJsonTreeContainer;
7104
+ _v$14 !== _p$.e && className(_el$44, _p$.e = _v$14);
7105
+ _v$15 !== _p$.t && className(_el$45, _p$.t = _v$15);
7106
+ _v$16 !== _p$.a && className(_el$46, _p$.a = _v$16);
7092
7107
  return _p$;
7093
7108
  }, {
7094
7109
  e: void 0,
7095
7110
  t: void 0,
7096
7111
  a: void 0
7097
7112
  });
7098
- return _el$46;
7113
+ return _el$44;
7099
7114
  }
7100
7115
  }), null);
7101
- insert(_el$51, createComponent(For, {
7116
+ insert(_el$49, createComponent(For, {
7102
7117
  get each() {
7103
7118
  return iters();
7104
7119
  },
@@ -7119,20 +7134,20 @@ var UserMessageGroupCard = (props) => {
7119
7134
  })
7120
7135
  }));
7121
7136
  effect((_p$) => {
7122
- var _v$19 = `${s().card} ${groupAccentClass()}`, _v$20 = s().cardHeader, _v$21 = s().userBubble, _v$22 = s().cardHeaderContent, _v$23 = s().cardHeaderLabel, _v$24 = s().cardSubtitle, _v$25 = s().cardHeaderBadges, _v$26 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`, _v$27 = `${s().configPanelWrapper} ${configExpanded() ? s().configPanelWrapperOpen : ""}`, _v$28 = s().configPanel, _v$29 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$30 = s().cardBodyInner, _v$31 = s().iterList;
7123
- _v$19 !== _p$.e && className(_el$1, _p$.e = _v$19);
7124
- _v$20 !== _p$.t && className(_el$10, _p$.t = _v$20);
7125
- _v$21 !== _p$.a && className(_el$11, _p$.a = _v$21);
7126
- _v$22 !== _p$.o && className(_el$12, _p$.o = _v$22);
7127
- _v$23 !== _p$.i && className(_el$13, _p$.i = _v$23);
7128
- _v$24 !== _p$.n && className(_el$14, _p$.n = _v$24);
7129
- _v$25 !== _p$.s && className(_el$24, _p$.s = _v$25);
7130
- _v$26 !== _p$.h && className(_el$34, _p$.h = _v$26);
7131
- _v$27 !== _p$.r && className(_el$35, _p$.r = _v$27);
7132
- _v$28 !== _p$.d && className(_el$36, _p$.d = _v$28);
7133
- _v$29 !== _p$.l && className(_el$49, _p$.l = _v$29);
7134
- _v$30 !== _p$.u && className(_el$50, _p$.u = _v$30);
7135
- _v$31 !== _p$.c && className(_el$51, _p$.c = _v$31);
7137
+ var _v$17 = `${s().card} ${groupAccentClass()}`, _v$18 = s().cardHeader, _v$19 = s().userBubble, _v$20 = s().cardHeaderContent, _v$21 = s().cardHeaderLabel, _v$22 = s().cardSubtitle, _v$23 = s().cardHeaderBadges, _v$24 = `${s().chevron} ${isOpen() ? s().chevronOpen : ""}`, _v$25 = `${s().configPanelWrapper} ${configExpanded() ? s().configPanelWrapperOpen : ""}`, _v$26 = s().configPanel, _v$27 = `${s().cardBody} ${isOpen() ? s().cardBodyOpen : ""}`, _v$28 = s().cardBodyInner, _v$29 = s().iterList;
7138
+ _v$17 !== _p$.e && className(_el$1, _p$.e = _v$17);
7139
+ _v$18 !== _p$.t && className(_el$10, _p$.t = _v$18);
7140
+ _v$19 !== _p$.a && className(_el$11, _p$.a = _v$19);
7141
+ _v$20 !== _p$.o && className(_el$12, _p$.o = _v$20);
7142
+ _v$21 !== _p$.i && className(_el$13, _p$.i = _v$21);
7143
+ _v$22 !== _p$.n && className(_el$14, _p$.n = _v$22);
7144
+ _v$23 !== _p$.s && className(_el$24, _p$.s = _v$23);
7145
+ _v$24 !== _p$.h && className(_el$32, _p$.h = _v$24);
7146
+ _v$25 !== _p$.r && className(_el$33, _p$.r = _v$25);
7147
+ _v$26 !== _p$.d && className(_el$34, _p$.d = _v$26);
7148
+ _v$27 !== _p$.l && className(_el$47, _p$.l = _v$27);
7149
+ _v$28 !== _p$.u && className(_el$48, _p$.u = _v$28);
7150
+ _v$29 !== _p$.c && className(_el$49, _p$.c = _v$29);
7136
7151
  return _p$;
7137
7152
  }, {
7138
7153
  e: void 0,