@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.
- package/dist/Shell/{KINKIMWF.js → MRWZEHAJ.js} +88 -79
- package/dist/Shell/{E5BETLAK.js → RRRNZJ5E.js} +193 -178
- package/dist/dev.js +1 -1
- package/dist/index.js +1 -1
- package/dist/production/Shell/{KINKIMWF.js → MRWZEHAJ.js} +88 -79
- package/dist/production/Shell/{E5BETLAK.js → RRRNZJ5E.js} +193 -178
- package/dist/production/dev.js +1 -1
- package/dist/production/index.js +1 -1
- package/dist/production/server.js +1 -1
- package/dist/server.js +1 -1
- package/package.json +3 -3
- package/src/components/conversation/ChunksTab.tsx +5 -3
- package/src/components/conversation/ConversationHeader.tsx +3 -2
- package/src/components/conversation/IterationCard.tsx +22 -15
- package/src/components/conversation/IterationTimeline.tsx +12 -10
- package/src/components/conversation/MessageCard.tsx +9 -7
- package/src/components/conversation/ToolCallDisplay.tsx +1 -1
- package/src/components/utils/format.ts +2 -0
- package/src/store/ai-context.tsx +20 -22
|
@@ -2681,13 +2681,14 @@ var AIProvider = (props) => {
|
|
|
2681
2681
|
});
|
|
2682
2682
|
}
|
|
2683
2683
|
function queueChunk(conversationId, chunk) {
|
|
2684
|
-
|
|
2685
|
-
|
|
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
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
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"
|
|
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
|
-
|
|
4211
|
-
|
|
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
|
|
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()
|
|
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
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
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
|
|
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
|
|
4767
|
+
return msg().chunks?.length ? msg().chunks : null;
|
|
4764
4768
|
},
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
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
|
-
|
|
4866
|
-
|
|
4867
|
+
let group = groups.get(key);
|
|
4868
|
+
if (!group) {
|
|
4869
|
+
group = [];
|
|
4870
|
+
groups.set(key, group);
|
|
4867
4871
|
}
|
|
4868
|
-
|
|
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="', '"
|
|
4979
|
-
var _tmpl$182 = [
|
|
4980
|
-
var _tmpl$192 = ["<div", "><span", ">
|
|
4981
|
-
var _tmpl$20 = ["<div", "><span", ">
|
|
4982
|
-
var _tmpl$21 = ["<div", "><span", ">
|
|
4983
|
-
var _tmpl$222 = ["<div", "><span", ">
|
|
4984
|
-
var _tmpl$232 = [
|
|
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 = () =>
|
|
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
|
-
|
|
5230
|
-
|
|
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
|
-
|
|
5248
|
-
|
|
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
|
|
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 (
|
|
5270
|
-
if (
|
|
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$
|
|
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
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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="', '"
|
|
5556
|
-
var _tmpl$123 = [
|
|
5557
|
-
var _tmpl$133 = ["<div", "><span", ">
|
|
5558
|
-
var _tmpl$143 = ["<div", "><span", ">
|
|
5559
|
-
var _tmpl$153 = [
|
|
5560
|
-
var _tmpl$163 = ['<
|
|
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 (
|
|
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
|
-
|
|
5592
|
-
|
|
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$
|
|
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
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
},
|